C语言编写一个函数del(s),将输入的字符串s中重复出现的字符删除,只保留最后出现的字符,要求大小写无关(即'A'与'a'视为相同字符)。在main()函数中测试此函数:从键盘输入一个字符串,然后调用该函数进行删除重复字符串操作,将结果打印到屏幕上。
时间: 2024-02-22 20:59:19 浏览: 65
C语言程序设计-从字符串s中删除指定的字符c.c
5星 · 资源好评率100%
好的,针对您的问题,我已经理解了您的要求。以下是实现del函数的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void del(char *s) {
int i, j, len = strlen(s);
for (i = 0; i < len; i++) {
s[i] = tolower(s[i]); // 将字符转换为小写
}
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (s[i] == s[j]) { // 如果找到重复字符
memmove(&s[j], &s[j+1], len-j); // 将后面的字符往前移动
len--; // 字符串长度减一
j--; // 继续检查当前位置
}
}
}
}
int main() {
char s[100];
printf("请输入一个字符串:");
fgets(s, 100, stdin);
s[strcspn(s, "\n")] = '\0'; // 去掉fgets读入的换行符
del(s);
printf("删除重复字符后的字符串是:%s\n", s);
return 0;
}
```
我们使用了两个循环来实现删除重复字符的功能。第一个循环将字符串中的所有字符都转换为小写,这样大小写就不会影响判断重复字符了。第二个循环则是一个嵌套循环,用来遍历字符串中的每一对字符,如果发现有重复的字符,就将后面的字符往前移动一位,直到字符串中没有重复字符为止。
在主函数中,我们使用fgets函数从标准输入(键盘)读入一个字符串,并用strcspn函数去掉字符串末尾的换行符。然后调用del函数进行删除重复字符的操作,最后输出处理后的字符串到屏幕上。
希望这个代码能够帮到您,如果您有任何问题,请随时问我。
阅读全文