【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’;即可。

全部评论

相关推荐

牛客5655:其他公司的面试(事)吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务