您的位置:首页 > 其它

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。

2016-12-11 19:22 831 查看
比如字符串“abacacde”过滤结果为“abcde”。

要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);

【输入】 pInputStr: 输入字符串

lInputLen: 输入字符串长度

【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例

输入:“deefd” 输出:“def”

输入:“afafafaf” 输出:“af”

输入:“pppppppp” 输出:“p”

#include <stdio.h>
#include <string.h>

#define len 100

void stringFilter(char *outputstr,char *inputstr,int ilen)
{
int flag[26] = {0};
int i = 0;

if(inputstr == NULL && ilen < 1)
{
return ;
}

char *p = inputstr;

while(*p != '\0')
{
if(flag[*p - 'a'])
{
p++;
}
else
{
outputstr[i++] = *p;
flag[*p - 'a'] = 1;
p++;
}
}

outputstr[i] = '\0';

}
int main()
{
char pInputStr[len];
char pOutputStr[len];

printf("please input Pinputstr:\n");
scanf("%s",pInputStr);

stringFilter(pOutputStr,pInputStr,strlen(pInputStr));

printf("%s\n",pOutputStr);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐