去重函数c语言 c语言字符去重

C语言 输入一个字符串 去掉重复的字符,输出无重复的

统计字符串中的重复字符,可以通过简单哈希算法来实现。

创新互联建站长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为灵武企业提供专业的网站建设、成都网站制作,灵武网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

有效的字符的ascii值在0-127之间,定义一个128位的数组,初始化为0,用数组下标对应相应的字符,数组元素值表示字符出现的频率,统计相应字符的个数,个数大于1的字符就是重复的。

参考代码如下:

#include

void main()

{

char s[1024];

int carr[128]={0};

int i;

printf("input a string: ");

gets(s);

for( i=0;s[i];i++ )

{

int index=s[i];

if ( index =0 index = 127 ) //安全处理,防止输入异常时,程序出错

carr[index]++ ;

}

for( i=0;i128;i++ )

if ( carr[i] 1 )

printf("%c:%d\n", i, carr[i] );

}运行结果:

input

a

string:

hello

world

l:3

o:2

adce;'>c语言字符串去重 aaadddcccde -> adce;

#includestdio.h

#include stdlib.h

#includestring.h

char Hash[30];

int main()

{

char A[]="aaadddcccde ";

int i,n=strlen(A);

for(i=0; in; i++)

{

if(Hash[A[i]-'a']==0) Hash[A[i]-'a']=1,printf("%c",A[i]);

}

return 0;

}

不知道是不是你要的。

c语言,输入为一些字符串,想要去除重复的字符串然后输出

#define N 100  //定义最多可以测试100个字串 

#define M 100  //定义每个字串最长100 

#define END "End!"   //定义结束输入的字串 

#include stdio.h

#include stdlib.h

#include string.h

int issame(char *p[],char *f,int n){

int i;

for(i=0;i=n;i++)

if(strcmp(p[i],f)==0) return 1;

return 0;

}

int main(void){

char *p[N];

int i=0,total;

int count=0;

printf("请输入不多于%d的字符串,以End!为结束\n",N);

while(1){

p[i]=(char *)(malloc(M)); //定义每个字串最长为100 

printf("第%d个字串:",i+1);

gets(p[i]);

if (strcmp(p[i],END)==0) break;  //如果输入了结束标记则结束输入 

i++;

}

total=i-1;  //计算总共输入了多少字串 

printf("以下得出不同的字串\n");

for(i=0;i=total;i++){

if(issame(p,p[i],i-1)==0){  //检查是否与前面输入的字符一致

count++;

printf("%d\t%s\n",count,p[i]);

}

}

}


分享文章:去重函数c语言 c语言字符去重
本文网址:http://pwwzsj.com/article/doppihg.html