40 lines
1.2 KiB
C
40 lines
1.2 KiB
C
/*-----------------------------------------------------------------------
|
|
【程序设计】
|
|
-------------------------------------------------------------------------
|
|
题目:编写函数实现输入一串字符串,删除字符串中的重复的字符,然后输出新的
|
|
字符串(重复字符保留第一次出现的字符)
|
|
输入输出如下所示
|
|
请输入一串字符串: mn,mn.,mzxcv,nkh021215468796468765465
|
|
去除重复字符后的字符串为: mn,.zxcvkh021546879
|
|
-------------------------------------------------------------------------
|
|
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
|
|
------------------------------------------------------------------------*/
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
void removeDuplicates(char *str);
|
|
int main()
|
|
{
|
|
char str[100];
|
|
printf("【请输入一个字符串: 】");
|
|
fgets(str, sizeof(str), stdin);
|
|
str[strcspn(str, "\n")] = 0;
|
|
removeDuplicates(str);
|
|
printf("【去除重复字符后的字符串为:】 %s\n", str);
|
|
return 0;
|
|
}
|
|
void removeDuplicates(char *str)
|
|
{
|
|
int seen[256] = {0};
|
|
int writeIdx = 0;
|
|
int i;
|
|
int len = strlen(str);
|
|
if (str == NULL)
|
|
return;
|
|
if (len <= 1)
|
|
return;
|
|
/**********Program**********/
|
|
|
|
/********** End **********/
|
|
str[writeIdx] = '\0';
|
|
}
|