给出一个小写字母构成的字符串,删除相同且相邻的字母使用c语言
时间: 2024-09-19 14:09:07 浏览: 46
在C语言中,你可以使用一个简单的循环结构以及两个指针来实现这个功能。这里是一个基本的示例,假设输入字符串存储在`str[]`数组中,长度为`len`:
```c
#include <stdio.h>
#include <string.h>
void remove_adjacent_chars(char str[], int len) {
if (len <= 1) return; // 如果字符串只有一个字符或空,则无需处理
int i = 0, j = 1;
while (j < len) {
// 如果当前字符不等于前一个字符,或者它们之间有其他字符
if (str[i] != str[j] || (i > 0 && str[i - 1] != str[j])) {
str[i++] = str[j]; // 移动有效字符到新位置
}
j++; // 指针后移
}
str[i] = '\0'; // 确保字符串以'\0'结束,即使只移动了一个字符
}
int main() {
char input[100];
printf("请输入小写字母组成的字符串: ");
fgets(input, sizeof(input), stdin); // 从用户获取输入,忽略换行符
input[strcspn(input, "\n")] = '\0'; // 删除fgets读取的换行符
remove_adjacent_chars(input, strlen(input));
printf("删除相邻重复后的字符串: %s\n", input);
return 0;
}
```
在这个程序中,`remove_adjacent_chars`函数会遍历输入字符串,如果发现连续相同的字符,就跳过它们。注意,这个例子假设输入字符串只有小写字母。
阅读全文