C语言,输入一个字符串,统计其中各个不同字符出现的频度,帮忙用指针来实现,自己一个是没思路,另一个,书上的是用数组,感觉很繁琐,请编一个清晰易懂的,谢谢
#include <stdio.h>
int main(void)
{
char a[80], b[80],*p,*q,*r;
int c[80] = {0};
int i,j,k;
gets(a);
p = a,q=b;
*q++= *p++;
while(*p)
{
for(r = a; r<p; r++)
{
if(*p == *r)
break;
}
if(r != p)
{
p++;
continue;
}
else
*q++ = *p++;
}
*q = '\0';
for(i = 0; b[i]!='\0';i++)
{
for(j = 0; a[j];j++)
{
if(b[i] == a[j])
c[i]++;
}
}
for(j = 0; j < i; j++)
printf("%c:%d\n",b[j],c[j]);
}
int main(void)
{
char a[80], b[80],*p,*q,*r;
int c[80] = {0};
int i,j,k;
gets(a);
p = a,q=b;
*q++= *p++;
while(*p)
{
for(r = a; r<p; r++)
{
if(*p == *r)
break;
}
if(r != p)
{
p++;
continue;
}
else
*q++ = *p++;
}
*q = '\0';
for(i = 0; b[i]!='\0';i++)
{
for(j = 0; a[j];j++)
{
if(b[i] == a[j])
c[i]++;
}
}
for(j = 0; j < i; j++)
printf("%c:%d\n",b[j],c[j]);
}
我写了一个,虽然可以实现,但是有点麻烦好像
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-03-20
没什么思路不思路,针对每一个字符,一个个比较就行了
另外,数组就挺简单了,用指针会把问题变得更复杂
另外,数组就挺简单了,用指针会把问题变得更复杂