问题:
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
要求实现函数:
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
代码:
#include <iostream>
#include <string>
using namespace std;
void stringFiler(const char *s1, long length, char *s2)
{
int j,k = 1;
s2[0] = s1[0];
for (int i = 1;i < length;++i)
{
for (j = 0;j < k;++j)
{
if (s2[j] == s1[i])
break;
}
if (j == k)
{
s2[k] = s1[i];
++k;
}
}
}
int main()
{
char s1[20] = { 0 }, s2[20] = {0};
cin >> s1;
stringFiler(s1, strlen(s1), s2);
cout << s2 << endl;
return 0;
}