str是一个由数字和字母字符组成的字符串,由变量hum传入字符串长度。请补充函数fun( ),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。 例如:str=“Bcdl23e456hui890”,结

admin2009-02-15  41

问题 str是一个由数字和字母字符组成的字符串,由变量hum传入字符串长度。请补充函数fun( ),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
   例如:str=“Bcdl23e456hui890”,结果为:123456890。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
   试题程序:
   #include<stdio.h>
   #define N 80
   int bb[N];
   int fun(char s[ ],int bb[ ],int num)
   {
      int i,n=0;
      for(i=0;i<num;i++)
      {
         if(【  】)
         {
            bb[n]=【  】;
            n++;
         }
     }
     return【  】;
   }
   main()
   {
     char str[N];
     int num=0,n,i;
     printf("Enter a string:\n");
     gets(str);
     while(str[num])
         num++;
     n=fun(str,bb,num);
     printf("\nbb=");
     for(i=0;i<n;i++)
         printf("%d",bb);
   }

选项

答案s[i]>=‘0’&&s[i]<=‘9’ s[i]-‘0’ n

解析 第一空:如果当前字符的ASCII码大于字符‘0’  的ASCII码,而小于字符‘9’的ASCII码,则说明当前字符是数字字符。第二空:将数字字符转换为数字的方法是,用当前数字字符的ASCII码减去字符‘0’  的ASCII码。第三空:题目要求函数返回数组bb的长度,而变量n记录了数字字符的个数,也就是数组bb的长度,所以函数应该返回n。
转载请注明原文地址:https://kaotiyun.com/show/rTID777K
0

最新回复(0)