2017-11-05 19 views
-1

文字列から特定の部分文字列を削除する場合は、たとえば"ababccdabce"とし、​​を削除して"abcde"になるようにしたいのですが、それを行うためのCのあらかじめ定義された関数、そうでなければ、それを行う方法?cの文字列から部分文字列を削除する

+1

なぜC++タグを使用しますか? –

+1

私はここにあなたの質問のタイトルでgoogleをお勧めします。 –

+1

"cの定義済み機能" - >いいえ。 – chux

答えて

2

これにはCで定義済みの関数はありませんが、strstrmemmoveを使用して書き込むことができます。部分文字列を削除すると、memcpyでもstrcpyも使用できないことに注意してください。あなたの例の場合のように得られた文字列がサブストリングを含んでいてもよいこと

#include <string.h> 

char *strremove(char *str, const char *sub) { 
    size_t len = strlen(sub); 
    if (len > 0) { 
     char *p = str; 
     while ((p = strstr(p, sub)) != NULL) { 
      memmove(p, p + len, strlen(p + len) + 1); 
     } 
    } 
    return str; 
} 

注:ここ

コードです。

関連する問題