C语言编写一个函数del(s),将输入的字符串s中重复出现的字符删除,只保留最后出现的字符,要求大小写无关(即'A'与'a'视为相同字符)。在main()函数中测试此函数:从键盘输入一个字符串,然后调用该函数进行删除重复字符串操作,将结果打印到屏幕上。
时间: 2024-05-03 17:20:30 浏览: 133
好的,这是一个编程问题,我可以回答。以下是del函数的C语言代码实现,以及在main函数中的测试代码:
```
#include <stdio.h>
#include <string.h>
void del(char* s) {
int len = strlen(s);
int dict[128] = {0}; // 用来记录每个字符最后出现的位置
for (int i = 0; i < len; i++) {
if (s[i] >= 'A' && s[i] <= 'Z') {
s[i] += 32; // 将大写字母转换为小写字母
}
dict[s[i]] = i;
}
int j = 0;
for (int i = 0; i < len; i++) {
if (i == dict[s[i]]) {
s[j++] = s[i];
}
}
s[j] = '\0'; // 字符串末尾加上'\0'
}
int main() {
char str[100];
printf("Please enter a string: ");
scanf("%s", str);
del(str);
printf("The result is: %s", str);
return 0;
}
```
你可以直接通过复制粘贴运行这段代码,然后输入一个字符串进行测试。这段代码会删除输入字符串中重复出现的字符,并保留最后出现的字符,大小写不敏感。
阅读全文