您的位置:首页 > 其它

华为机时-字符串过滤

2015-08-10 15:02 337 查看
【题目描述】

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

比如字符串“abacacde”过滤结果为“abcde”。

代码:

方法一
#include<stdio.h>
#include<string.h>
void filter(char ch[],int len)
{
int i,j;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(ch[i]==ch[j])
{
strcpy(&ch[j],&ch[j+1]);
len=strlen(ch);
filter(ch,len);
}
}
}
}

int main(void)
{
char zifu[100];
int len,i,j,c=0;
gets(zifu);

len = strlen(zifu);
filter(zifu,len);

printf("%s",zifu);
}
方法二
#include<stdio.h>
#include<string.h>

void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
int flag[26]={0};
int i,j=0;

for(i=0;i<lInputLen;i++)
{
if(flag[pInputStr[i]-'a']==0)
{
pOutputStr[j++]=pInputStr[i];
flag[pInputStr[i]-'a']=1;
}
}

pOutputStr[j] = '\0';

}
int main(void)
{
char input[20];
char output[20];
int len;

gets(input);
len=strlen(input);

stringFilter(input,len,output);

printf("%s",output);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: