华为机时-字符串过滤

来源:互联网 发布:淘宝彩票网合法的吗 编辑:程序博客网 时间:2024/06/16 06:12

【题目描述】

通过键盘输入一串小写字母(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);}



0 0
原创粉丝点击