C言語 strreplace関数:文字列置換の基本と実装
C言語では、文字列中の部分文字列を置換するための組み込みのstrreplace関数はありません。この機能を実現するために独自の関数を作成する必要があります。以下は文字列中の部分文字列を置換するためのサンプル関数です:
#include <stdio.h>
#include <string.h>
void strreplace(char *str, const char *sub, const char *replace) {
char result[1000];
char *p = strstr(str, sub);
if (p == NULL) {
return;
}
strncpy(result, str, p - str);
result[p - str] = '\0';
sprintf(result + (p - str), "%s%s", replace, p + strlen(sub));
strcpy(str, result);
}
int main() {
char str[1000] = "Hello, world!";
char sub[] = "world";
char replace[] = "C programming";
printf("Before: %s\n", str);
strreplace(str, sub, replace);
printf("After: %s\n", str);
return 0;
}
この例では、文字列内の部分文字列を置換するstrreplace関数を定義しました。 main関数では、最初に元の文字列を印刷し、その後に”world”を”C programming”に置換するためにstrreplace関数を呼び出し、最後に置換された文字列を印刷します。この関数をテストするために必要に応じて文字列と部分文字列を変更できます。