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

全部评论

相关推荐

不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务