请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组aIf中。注意:不区分大小写,不能使用字符串库函数。 例如,输入: “A=abc+5*c”,结果为:a=2, b=l,c=2。 注

admin2009-02-15  56

问题 请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组aIf中。注意:不区分大小写,不能使用字符串库函数。
   例如,输入:  “A=abc+5*c”,结果为:a=2, b=l,c=2。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数run的横线上填入所编写的若干表达式或语句。
   试题程序:
   #include<conio.h>
   #include<stdio.h>
   #define N 100
   void fun(char *tt,int alf[])   
   {
       int i
       char *p=tt;
       for(i=0;i<26;i++)
               【  】;
       while(*p)
       {
         if(*p>=’A’&&*p<=’z’)
               【  】;
         if(*p>=’a’&&*p<=’Z’)
            alf[*p-’a’]++;
                  【  】;
       }
   }
   main()
   {
      char str[N];
      char a=’a’;
      int alf[26],k;
      clrscr();
      printf("\nPlease enter a char string:");
      scanf("%S",str);
      printf("\n**The original string**\n");
      puts(str);
      fun(str,alf);
      printf("\n**The number of letter**\n");
      for(k:0;k<26;k++)
      {
           if(k%5==0)
              printf(“\n”);
           printf(“%c=%d”,a+k,alf[k]);
      }
       printf(“\n”);   
    }

选项

答案alf[i]=0 *p+=32 p++

解析 第一空:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。第二空:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。第三空:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。
转载请注明原文地址:https://kaotiyun.com/show/NTID777K
0

相关试题推荐
最新回复(0)