C语言删除相同的元素。只需写出调用函数。谢谢了

假设字符数组a中存放了按由小到大连续存放的
字符构成的字符串(后跟一个'\0'作为结束符)。编写函数,
删去字符串中所有重复的字符(各自只保留一个),并使得保
留的字符仍构成一个字符串(连续存放,'\0'作为结束符)。
函数返回a中保留的字符串长度。例如,若a中的字符串值为:
AAABBCDFFFHHHKLMMM
则删除重复字符之后,函数返回值为9,a中的字符串值为:
ABCDFHKLM

#include<stdio.h>

void f(char a[])
{
int n,i,j,k;
i = 0;
while(a[i] != '\0')
i++;
n = i; // 字符长度
for(i = 1;i<n;i++)
{
for(j=0;j<i;j++)
{
if(a[i] == a[j])
{
for(k=i;k<n-1;k++)
a[k] = a[k+1];
a[k] = '\0';
i--;
n--;
}
}
}
printf("%s\t",a);
printf("%d\n",n);
}

void main()
{
char a[100];
scanf("%s",a);
f(a);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-04
int fun(char a[N])
{
char ch;
int i,j,k;
for(i=0;i<N-1;i++)
for(j=i+1;j<N-1;j++)
if(a[i]==a[j])
{
N--;
for(k=j;k<N-1;k++)
a[k]=a[k+1];
}
return N;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网