c语言删除字符串中的重复项
时间: 2024-10-27 07:15:31 浏览: 12
在C语言中,删除字符串中的重复字符通常涉及到遍历字符串、创建新的字符串并逐个添加不重复的字符。这里是一个简单的示例,使用`strncpy()`函数和指针来实现这个功能:
```c
#include <stdio.h>
#include <string.h>
void remove_duplicates(char *input_str) {
if (input_str == NULL || strlen(input_str) <= 1)
return;
int len = strlen(input_str);
char result[len + 1]; // 新字符串的空间
char current_char;
int j = 0; // 结果字符串的指针
for (int i = 0; input_str[i] != '\0'; ++i) {
current_char = input_str[i];
if (current_char != result[j]) {
result[j++] = current_char;
}
}
result[j] = '\0'; // 添加结束符
strncpy(input_str, result, j); // 更新原字符串
}
// 测试
int main() {
char str[] = "aabbccdd";
printf("Original string: %s\n", str);
remove_duplicates(str);
printf("After removing duplicates: %s\n", str);
return 0;
}
```
在这个例子中,我们首先检查输入字符串是否为空或者长度小于等于1,如果是,则无需操作。然后,我们遍历输入字符串,如果当前字符不在结果字符串中,就将其添加到结果字符串。最后更新原字符串为去重后的结果。
阅读全文