C言語での文字列切り出し処理

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

大学の課題を解いていて、C言語での文字列切り出し処理がめちゃくちゃ大変だったので…
こうやればできたよ!という備忘録です。

コード

char* substr(char* target, const char* input, size_t begin, size_t end) {
    if (begin < strlen(input)) {
        strncpy(target, input + begin, end + 1);
        target[end - begin + 1] = '\0';
    } else {
        target[0] = '\0';
    }
    return target;
}

説明

char* strncpy(char* s1, const char* s2, size_t n);

はs2の文字列をn文字s1にコピーしてくれますが、NULL文字は追加してくれません。
そこで、後から自分で追加してあげる必要があります。
なので、まず最初に1文字多めにコピーしてから末尾をNULL文字に置き換える方法で実装しています。

コメント

  • NULL文字を置く位置をうまく処理するのに苦戦しました…。
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)