C语言 删除字符串相同相邻字母
时间: 2024-10-12 14:13:49 浏览: 28
在C语言中删除字符串中相同相邻的字符,你可以使用两个指针,一个指向当前处理的位置,另一个备份当前字符。遍历字符串的同时,检查当前字符是否与下一个字符相同。如果不相同,则将当前字符复制到结果字符串并移动指针;如果相同,直接跳过。
下面是一个简单的示例函数:
```c
#include <stdio.h>
#include <string.h>
void remove_adjacent_chars(char *str) {
if (str == NULL || strlen(str) < 2) return; // 验证输入
char *p = str, *q = str;
while (*q) { // 遍历字符串
if (*q != *(q + 1)) { // 如果不相邻的字符相同
*p++ = *q; // 将字符复制到结果位置
}
q++; // 移动q指针
}
*p = '\0'; // 结束字符串
}
int main() {
char str[] = "aaabbccdd";
printf("Original string: %s\n", str);
remove_adjacent_chars(str);
printf("After removing adjacent same letters: %s\n", str);
return 0;
}
```
运行此程序,原始字符串 "aaabbccdd" 会变成 "abcd"。
阅读全文