サイトアイコン ayame.space

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

大学の課題を解いていて、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文字に置き換える方法で実装しています。

コメント

モバイルバージョンを終了