/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
题目:编写一个函数通过检测输入的字符串是否有重复的,有去除重复字符串在主函数中调用该函数输出新的字符串,如果输入的非字符串子提示输入有误,继续运行程序重新输入
输入输出如下所示:
请输入一个字符串: 阿阿阿
输入有误,请输入仅包含字母和数字的字符串!
请输入一个字符串: sdfadfagggggg12223115
去除重复字符后的字符串: sdfag1235
-----------------------------------------------------------------------
注意:请勿改动程序中的其他部分,在函数中根据自己习惯定义变量名。
---------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int isValidString(const char *str);
char* removeDuplicates(char *str);
int main() {
char input[100];
char* result;
while (1) {
printf("【请输入一个字符串:】");
fgets(input, sizeof(input), stdin);
input[strlen(input) - 1] = '\0';
if (isValidString(input)) {
break;
} else {
printf("输入有误,请输入仅包含字母和数字的字符串!\n");
}
}
result = removeDuplicates(input);
printf("【去除重复字符后的字符串: 】%s\n", result);
free(result);
return 0;
}
int isValidString(const char *str) {
int i;
if (str == NULL || strlen(str) == 0)
return 0;
for ( i = 0; str[i]; ++i) {
if (!isalnum((unsigned char)str[i])) {
return 0;
}
}
return 1;
}
char* removeDuplicates(char *str) {
/**********Program**********/
/********** End **********/
}