当前位置: 代码迷 >> C语言 >> 请大家看看最后那个printf("\'%c\'=%d ",i,c[i]);什么意思?谢谢
  详细解决方案

请大家看看最后那个printf("\'%c\'=%d ",i,c[i]);什么意思?谢谢

热度:309   发布时间:2008-01-20 18:27:38.0
请大家看看最后那个printf("\'%c\'=%d ",i,c[i]);什么意思?谢谢
从键盘输入一个字符串(不多于80个字符),统计其中各字符出现的次数,然后按字符从小到大的顺序输出其出现的次数,每个字符的输出项样式为:'该字符'=出现次数,各字符项间用空格分隔,每行输出10个字符项。例如:
输入:abcd$234#ABC34%/*a[i]b[j]*/
输出:'#'=1 '$'=1 '%'=1 '*'=2 '/'=2 '2'=1 '3'=2 '4'=2 'A'=1 'B'=1
    'C'=1 '['=2 ']'=2 'a'=2 'b'=2 'c'=1 'd'=1 'i'=1 'j'=1
main()
{  char s[81];
   int i,j,c[128]={0};
   gets(s);
   for(i=0;s[i];i++)
      c[s[i]]++;
   for(j=i=0; i<128; i++)
      if(c[i])
        { printf("\'%c\'=%d ",i,c[i]);
           if(++j%10==0)  printf("\n");
        }
这个程序是怎么实现不重复输出字符的呢?
搜索更多相关的解决方案: printf  字符  意思  键盘  

----------------解决方案--------------------------------------------------------
怎么觉得printf("\'%c\'=%d",i,c[i]);有错呢?
按照你的应该输出应该是 printf ("\'%c\'=%d",c[i],i);吧!
----------------解决方案--------------------------------------------------------
这个我换过。。。出不来答案的。这个是学校的历届考题。。是标答。我想是不是这样写能做到不重复输出字符啊。。。
----------------解决方案--------------------------------------------------------
i代表的是该字符的ASCII码,C[i]是用来储存ASCII码为I的字符个数的

下面的是关健代码:

for(i=0;s[i];i++)//s[i]是输入的字符,字符串结束时S[I]为'\0',ASCII码为0,结束循环
      c[s[i]]++;//ASCII码为S[I]的个数加1
----------------解决方案--------------------------------------------------------
回复 4# 的帖子
谢谢啦^_^
----------------解决方案--------------------------------------------------------
  相关解决方案