华为机时-字符串过滤
2015-08-10 15:02
337 查看
【题目描述】
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
代码:
方法一
通过键盘输入一串小写字母(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); }
相关文章推荐
- C#实现向已存在的Excel文件中写入数据实例(两种方法)
- 黑马程序员——面向对象概述+类与对象的关系-第8天
- 无法执行添加/移动操作,因为代码元素CConfigDlg是只读的
- BASH练习第四课
- 有关Struts2a的ction直接使用response异步问题
- 用 Python 测试框架简化测试
- entity get id ?
- Eclipse Java注释模板设置详解
- HDU 3732(Ahui Writes Word)多重背包
- 谁是天才
- 交叉编译 x264
- 图形表达程序框架
- python 字符串转秒 完成多少小时转成多少秒
- UITableView小程序 汽车品牌
- Spring类同名引起的ConflictingBeanDefinitionException异常
- NOIP2009最优贸易 (tarjan+dfs)
- Cassandra 数据读取过程
- was7.0 IHS 安装配置
- 15个最受欢迎的Python开源框架
- POJ 2976-Dropping tests(01分数规划_二分||Dinkelbach算法)