【c++】字符串---去除重复字符
输入一个字符串,去掉重复字符后输出。
输入样例:
abcaadefb
输出样例
abcdef
实现方法:
void Encrypt(char* keych,char *key)
{
keych[0]=key[0];
int i,j=0,k=0,flag;
for(i=0;key[i]!='\0';i++)
{
flag=1;
//判断key[i]是否与ketch中的某个字符相等,如果有相等的字符,则将flag置为1.
for(k=0;k<j+1;k++)
{
if(key[i]==keych[k])
flag=0;
}
if(flag)
{
j=j+1;
keych[j]=key[i];
}
}
keych[j+1]='\0';
}
完整程序:
#include<iostream>
#include<cstdio>
using namespace std;
#define MAX 100
void Encrypt(char* keych,char *key);
int main()
{
char key[MAX],data[MAX],encrypt[MAX];
char keych[MAX];
fgets(key,MAX,stdin);
// fgets(data,MAX,stdin);
Encrypt(keych,key);
cout<<keych;
return 0;
}
void Encrypt(char* keych,char *key)
{
keych[0]=key[0];
int i,j=0,k=0,flag;
for(i=0;key[i]!='\0';i++)
{
flag=1;
for(k=0;k<j+1;k++)
{
if(key[i]==keych[k])
flag=0;
}
if(flag)
{
j=j+1;
keych[j]=key[i];
}
}
keych[j+1]='\0';
}
运行结果:
注意
fgets()函数在遇到换行符时会结束输入,同时将’\n’添加到字符串当中,最后在末尾加上’\0’,因此执行完
fgets(key,MAX,stdin);
这条语句之后,key=“abcaadefb\n\0”.如果在输出是不想输出换行,只需把keych[j+1]='\0';
改为:`keych[j]=’\0’;即可。