一个字符串过滤程序

来源:互联网 发布:php json 中括号 编辑:程序博客网 时间:2024/06/06 20:28

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

比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:
            void stringFilter( const char *pInputStr, long lInputLen, char* pOutputStr );
           【输入】 pInputStr:    输入字符串
                          lInputLen:    输入字符串长度        
           【输出】 pOutputStr:  输出字符串,空间已经开辟好,与输入字符串等长;
           【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“deefd”            输出:“def
输入:“afafafaf”     输出:“af

输入:“pppppppp”     输出:“p

程序如下:

#include <iostream>using namespace std;void stringFilter(const char *pInputStr,long lInputLen,char *pOutputStr){const char *p = pInputStr;    //12344556666char *q = pOutputStr;         // pchar *k = pOutputStr;         //1                                  // kwhile(*p != '\0'){while( q != k && !( *p == *q ) && q )q++;        if( q == k ) *k++ = *p;           q = pOutputStr;  //q重新指向pOutputStr,判断此时的*p是否和已经被填入k中的字符串有相等的。        ++p; }*k = '\0';}int main(){char *src = "12344556666aaabbbbcdeeeeeeafgh****&&&^^^%%%"; char *des = new char[strlen(src) + 1];stringFilter(src,strlen(src),des);cout<<"after filter:\n"<<des<<endl;delete[] des;des = NULL;return 0;}

运行结果:


0 0
原创粉丝点击