C语言去除重复的字符串
时间: 2024-11-20 09:34:27 浏览: 16
在C语言中,要去除字符串数组中的重复元素,通常需要遍历数组并利用另一个临时数组或者链表存储不重复的字符串。以下是一个简单的示例,假设我们有一个字符数组`strs[]`:
```c
#include <stdio.h>
#include <string.h>
void removeDuplicates(char strs[], int n) {
if (n == 0 || n == 1) return; // 如果只有一个元素或空数组,直接返回
int i, j;
for (i = 0, j = 0; i < n - 1; ++i) {
if (strcmp(strs[i], strs[i + 1]) != 0) { // 如果当前字符串不等于下一个
strs[j++] = strs[i]; // 将不重复的字符串复制到新位置
}
}
strs[j] = '\0'; // 结束字符串数组
}
int main() {
char strs[] = {"abc", "def", "ghi", "abc", "jkl", "mno", "abc"};
int n = sizeof(strs) / sizeof(strs[0]);
printf("Original array:\n");
for (int i = 0; i < n; i++) {
printf("%s ", strs[i]);
}
removeDuplicates(strs, n);
printf("\nArray without duplicates:\n");
for (int i = 0; strs[i] != '\0'; i++) {
printf("%s ", strs[i]);
}
return 0;
}
```
运行这个程序后,你会发现原始数组中的重复字符串已被删除。
阅读全文