文字列内のすべての文字を別の文字で置き換える標準ライブラリの関数が必要です。
また、文字列内のすべての部分文字列を別の文字列で置き換える標準ライブラリの関数も必要です。
標準ライブラリにそのような関数はありますか?
それを行う直接的な機能はありません。 strchr
を使用して、次のように記述する必要があります。
char* replace_char(char* str, char find, char replace){
char *current_pos = strchr(str,find);
while (current_pos){
*current_pos = replace;
current_pos = strchr(current_pos,find);
}
return str;
}
文字列全体については、 この回答された質問 を参照します
標準ライブラリにはそのような関数はありません。
単一の文字を置き換える場合はstrchr
を、部分文字列を置き換える場合はstrstr
を使用して、独自のロールを簡単にロールできます(後者は少し複雑になります)。
int replacechar(char *str, char orig, char rep) {
char *ix = str;
int n = 0;
while((ix = strchr(ix, orig)) != NULL) {
*ix++ = rep;
n++;
}
return n;
}
これは、置き換えられた文字の数を返し、char自体を置き換えても影響を受けません。