编制函数,将字符串中连续的相同字符仅保留 1 个c语言
时间: 2024-02-28 20:56:45 浏览: 108
可以使用一个循环来遍历字符串,检查当前字符和前一个字符是否相同,如果相同则将其删除,否则保留。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_duplicates(char *str) {
int len = strlen(str);
int i, j;
for (i = 1, j = 1; i < len; i++) {
if (str[i] != str[i - 1]) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[] = "aaabbbcccdddeee";
remove_duplicates(str);
printf("%s\n", str); // 输出:abcde
return 0;
}
```
在上面的代码中,`remove_duplicates` 函数接受一个字符串参数,并在原地修改字符串,使得连续的相同字符仅保留1个。该函数首先计算字符串的长度,然后使用两个指针 `i` 和 `j` 来遍历字符串。指针 `i` 从第二个字符开始,指针 `j` 记录输出字符串的长度。如果当前字符和前一个字符不同,则将其保存在 `j` 指向的位置,并将 `j` 加1。最后,将字符串的结束符 `\0` 添加到输出字符串的末尾。
阅读全文