同じ文字を文字列から削除する方法(C言語)

C言語では、重複する文字を含む文字列を削除するためのメソッドがいくつか存在します。

  1. 文字列の全ての文字に対して、2つの入れ子になったループを使用して、各文字が他の文字と一致するかどうかを比較します。
  2. 見つかった場合、文字は文字列から消される。
  3. 文字列の長さを1減らす。
  4. 手順1~手順3を文字列内の同一文字がなくなるまで繰り返します。

下面是一个示例代码:

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

void deleteDuplicateChars(char *str) {
    int len = strlen(str);
    int i, j, k;
    
    for (i = 0; i < len; i++) {
        for (j = i + 1; j < len; j++) {
            if (str[j] == str[i]) {
                for (k = j; k < len; k++) {
                    str[k] = str[k + 1];
                }
                len--;
                j--;
            }
        }
    }
}

int main() {
    char str[100];
    
    printf("Enter a string: ");
    scanf("%s", str);
    
    deleteDuplicateChars(str);
    
    printf("String after deleting duplicate characters: %s\n", str);
    
    return 0;
}

输入示例:

Enter a string: programming

ネイティブな日本語で文章を言い換えてください。1つのオプションだけが必要です。出力例:

String after deleting duplicate characters: progamin

連続する同一文字のみ1文字を削除し、元の文字列を(直接)変更します。元の文字列をそのまま維持したい場合は、同一文字を削除した結果を格納する別の文字列を使用してください。

bannerAds