C言語で特定の文字列を削除する方法は何ですか。

C言語では、特定の文字列を削除するためには、strcpy()関数とstrstr()関数を使用することができます。具体的な手順は次のとおりです:

  1. 元の文字列で削除する文字列の位置を検索します。 見つけるために、strstr()関数を使用して、削除する文字列が元の文字列で最初に現れる位置を見つけます。 見つかった場合、その位置のポインターを返します。 見つからない場合、NULLを返します。
  2. 指定の削除する文字列が見つかった場合、strcpy()関数を使用して後ろの文字列を前に移動させ、削除する文字列を上書きします。ポインタ演算を使用することで実現できます。

以下はサンプルコードです。

#include <stdio.h>
#include <string.h>

void deleteString(char* str, const char* target) {
    char* pos = strstr(str, target); // 查找要删除的字符串的位置
    if (pos != NULL) {
        strcpy(pos, pos + strlen(target)); // 删除字符串
    }
}

int main() {
    char str[100] = "Hello World";
    const char* target = "World";
    
    deleteString(str, target);
    
    printf("%s\n", str); // 输出:Hello 
    
    return 0;
}

この例では、文字列”Hello World”から削除される文字列”World”が削除され、最終的な結果は”Hello”となります。

bannerAds