C言語 文字列置換:部分文字列を効率良く置換する方法

C言語では、strstr()関数とstrcpy()関数を使用して、文字列内の部分文字列を置換することができます。具体的な手順は以下の通りです。

  1. strstr()関数
  2. 新しい文字列に、先頭部分のサブストリングをコピーします。
  3. 新しいサブストリングをコピーして新しい文字列に置き換えます。
  4. 新しい文字列に対して、元のサブストリングの後ろの部分をコピーしてください。
  5. 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”に置き換え、最後に更新された文字列を出力します。

bannerAds