-1
文字列から特定の部分文字列を削除する場合は、たとえば"ababccdabce"
とし、を削除して"abcde"
になるようにしたいのですが、それを行うためのCのあらかじめ定義された関数、そうでなければ、それを行う方法?cの文字列から部分文字列を削除する
文字列から特定の部分文字列を削除する場合は、たとえば"ababccdabce"
とし、を削除して"abcde"
になるようにしたいのですが、それを行うためのCのあらかじめ定義された関数、そうでなければ、それを行う方法?cの文字列から部分文字列を削除する
これにはCで定義済みの関数はありませんが、strstr
とmemmove
を使用して書き込むことができます。部分文字列を削除すると、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;
}
注:ここ
コードです。
なぜC++タグを使用しますか? –
私はここにあなたの質問のタイトルでgoogleをお勧めします。 –
"cの定義済み機能" - >いいえ。 – chux