C言語 文字列置換:部分文字列を効率良く置換する方法
C言語では、strstr()関数とstrcpy()関数を使用して、文字列内の部分文字列を置換することができます。具体的な手順は以下の通りです。
- strstr()関数
- 新しい文字列に、先頭部分のサブストリングをコピーします。
- 新しいサブストリングをコピーして新しい文字列に置き換えます。
- 新しい文字列に対して、元のサブストリングの後ろの部分をコピーしてください。
- strcpy()関数
以下は、文字列内のサブ文字列を置換するためのサンプルコードです。
#include <stdio.h>
#include <string.h>
void replaceSubstring(char *original, char *substring, char *replacement) {
char newString[1000];
char *ptr;
strcpy(newString, original);
while ((ptr = strstr(newString, substring))) {
strcpy(ptr, replacement);
strcpy(ptr + strlen(replacement), ptr + strlen(substring));
}
strcpy(original, newString);
}
int main() {
char str[1000] = "hello world";
printf("Original string: %s\n", str);
replaceSubstring(str, "world", "everyone");
printf("Updated string: %s\n", str);
return 0;
}
この例では、文字列内のサブストリングを置き換えるreplaceSubstring()関数を定義しています。main()関数では、最初に元の文字列を出力し、次にreplaceSubstring()関数を呼び出して”world”を”everyone”に置き換え、最後に更新された文字列を出力します。