字符过滤
来源:互联网 发布:linux中可执行文件 编辑:程序博客网 时间:2024/04/27 19:36
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串"abacacde",过滤结果为"abcde"。
要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】pInputStr:输入字符串lInputLen:输入字符串长度
【输出】pOutputStr:输出字符串,空间已经开辟好,与输入字符串等长。
方法(1):
#include <stdio.h>#include <string>#include <malloc.h>void stringFilter(const char* pInputStr, long lInputLen, char* pOutputStr){int i,j;int k = 1;pOutputStr[0] = pInputStr[0];bool bFlag = true;for (i = 1; i < lInputLen; i++){for (j = i - 1; j >= 0; j--){if (pInputStr[j] == pInputStr[i]){bFlag = false;break;}}if (bFlag == false){bFlag = true;continue;}else{pOutputStr[k++] = pInputStr[i];}}pOutputStr[k] = '\0';}void main(){char* str;str = (char*)malloc(sizeof(char));printf("请输入字符串\n");scanf("%s",str);//字符串的长度long lStrLen = strlen(str);//输出字符串char* result;result = (char*)malloc(sizeof(char) * lStrLen);stringFilter(str,lStrLen,result);printf("过滤后的字符串:%s\n",result);}方法(2):#include <stdio.h>#include<string.h>#include<malloc.h>void stringFilter(const char *p_str, long len, char *p_outstr){ int array[256]={0}; const char *tmp = p_str; for(int j=0;j<len;j++) { if(array[tmp[j]]==0)*p_outstr++= tmp[j]; array[tmp[j]]++; }*p_outstr = '\0';}void main(){char *str = "cccddecc";int len = strlen(str);char * outstr = (char *)malloc(len*sizeof(char));stringFilter(str,len,outstr);printf("%s\n",outstr);free(outstr);outstr = NULL;}
0 0
- 过滤字符
- 过滤字符
- 字符过滤
- 过滤字符
- 字符过滤
- 字符数组过滤特殊字符
- 数组过滤重复字符
- ASP特殊字符过滤
- 过滤非法字符 一
- 过滤非法字符 二
- 过滤非法字符 三
- 字符过滤函数
- 字符过滤类
- ASP 字符过滤操作
- ASP特殊字符过滤
- asp过滤非法字符
- 过滤制定中文字符
- Filter过滤非法字符
- BT手柄按键失灵的问题(2)
- MVC设计模式
- Android之View和SurfaceView的区别
- ucenter整合第三方网站同步登录
- android api分析27 对话框
- 字符过滤
- 一些招聘信息
- tomcat启动时候报错。
- 用Eclipse做Android开发时出现java.lang.NoClassDefFoundError问题
- java 与数据库中的类型的转换
- 超酷的风铃悬挂摆动效果 基于Kinetic框架
- VxWorks启动过程详解(上)
- LeetCode N-Queens
- Java 写入文件 问题