在主函数定义一个字符数组,从键盘输入一串未排序的字符存入数组,在被调函数delete_sz中删除一维数组中所有相同的字符,使之保留一个,被调函数返回删除的字符个数,主函数输出删除重复字符后的字符串
只需要将不同的字符从字符数组的开头存放就可以了。每一个字符都先检查是否有重复,有重复就忽略
#include <iostream>
using namespace std;
int delete_sz(char *s)
{
int count = 0;
int i=0,j=0,k=0;
while(s[i] != 0)
{
for(k=0;k<j;k++)
if(s[k] == s[i])
break;
if(k==j)
s[j++] = s[i];
else
count++;
i++;
}
s[j] = 0;
return count;
}
int main()
{
char s[100];
gets(s);
int n = delete_sz(s);
cout<<s<<endl;
cout<<"被删除字符数量:"<<n;
return 0;
}