用c语言编写一个函数del(s),将输入的字符串s中重复出现的字符删除,只保留最后出现的字符,要求大小写无关(即'A'与'a'视为相同字符)。在main()函数中测试此函数:从键盘输入一个字符串,然后调用该函数进行删除重复字符串操作,将结果打印到屏幕上。
时间: 2024-02-13 11:00:49 浏览: 92
C语言字符串处理函数
好的,以下是C语言的解答:
```c
#include <stdio.h>
#include <string.h>
void del_duplicate(char s[]) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
s[i] = tolower(s[i]); // 将字符转化为小写字母,使大小写无关
}
char new_s[100] = {0}; // 新字符串初始化为空
for (int i = 0; i < len; i++) {
int j;
for (j = i + 1; j < len; j++) {
if (s[i] == s[j]) {
break; // 找到第一次重复出现的字符,跳出循环
}
}
if (j == len) {
strcat(new_s, &s[i]); // 拼接新字符串,保留最后出现的字符
}
}
strcpy(s, new_s); // 将新字符串复制回原字符串s
}
int main() {
char s[100];
printf("请输入一个字符串:");
gets(s);
del_duplicate(s);
printf("删除重复字符后的结果为:%s", s);
return 0;
}
```
在上面的代码中,我们定义了一个函数 `del_duplicate()`,该函数接受一个字符串作为参数,并将删除重复字符后的结果复制回原字符串。在函数中,我们先将字符串中的所有字符转化为小写字母,使大小写无关,然后遍历字符串中的每个字符,找到第一次重复出现的字符,将该字符保留,删除其他重复字符。最后,我们将新字符串复制回原字符串s中,得到删除重复字符后的结果。在主函数中,我们从键盘输入一个字符串,调用 `del_duplicate()` 函数进行删除重复字符操作,并将结果打印到屏幕上。注意,C语言中没有内置的字符串替换函数,我们可以使用 `strcat()` 函数将新字符拼接到新字符串的末尾,以达到删除旧字符的目的。
阅读全文