c語(yǔ)言字符串去重的方法是什么

小億
104
2024-08-05 17:51:12

在C語(yǔ)言中,可以使用一個(gè)新的字符串?dāng)?shù)組來(lái)存儲(chǔ)去重后的字符。具體方法如下:

  1. 遍歷原始字符串,逐個(gè)字符判斷是否在新的字符串?dāng)?shù)組中存在。
  2. 如果不存在,則將該字符添加到新的字符串?dāng)?shù)組中。
  3. 最后將新的字符串?dāng)?shù)組作為去重后的結(jié)果。

下面是一個(gè)示例代碼:

#include <stdio.h>

void removeDuplicates(char* str) {
    int hash[256] = {0}; // 用于標(biāo)記字符是否已經(jīng)出現(xiàn)過(guò)
    int currentIndex = 0;

    for (int i = 0; str[i]; i++) {
        if (hash[(int)str[i]] == 0) {
            str[currentIndex] = str[i];
            currentIndex++;
            hash[(int)str[i]] = 1;
        }
    }

    str[currentIndex] = '\0';
}

int main() {
    char str[] = "hello world";
    removeDuplicates(str);
    printf("String after removing duplicates: %s\n", str);

    return 0;
}

運(yùn)行上述代碼后,將輸出去重后的字符串:“helo wrd”。

0