#include #include void replaceString(char* source, const char* target, const char* replacement) { char buffer[1024]; // テンポラリバッファ char* p; // source内でtargetを検索 while ((p = strstr(source, target)) != NULL) { // targetが見つかったら、それより前の部分をbufferにコピー strncpy_s(buffer, sizeof(buffer), source, p - source); buffer[p - source] = '\0'; // 文字列の終端を設定 // replacementをbufferに追加 strcat_s(buffer, sizeof(buffer), replacement); // targetの次の位置からsourceの終端までをbufferに追加 strcat_s(buffer, sizeof(buffer), p + strlen(target)); // bufferの内容をsourceにコピー strcpy_s(source, sizeof(buffer), buffer); } } int main() { char inputString[1024]; char targetString[256]; char replacementString[256]; // ユーザーに文字列を入力してもらう printf("文字列を入力してください: "); fgets(inputString, sizeof(inputString), stdin); // 置換する文字列を入力してもらう printf("置換対象の文字列を入力してください: "); fgets(targetString, sizeof(targetString), stdin); // 置換後の文字列を入力してもらう printf("置換後の文字列を入力してください: "); fgets(replacementString, sizeof(replacementString), stdin); // 改行文字を削除 inputString[strcspn(inputString, "\n")] = '\0'; targetString[strcspn(targetString, "\n")] = '\0'; replacementString[strcspn(replacementString, "\n")] = '\0'; // 文字列を置換する関数を呼び出し replaceString(inputString, targetString, replacementString); // 結果を表示 printf("置換後の文字列: %s\n", inputString); return 0; }