使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成函数fun(char*S,int a[]),其功能是把S中出现的数字转换成数字存储在a[]中,然后返回转换的个数。 例如:S="1234abcdef567": 则:a[]qb存储

admin2015-05-30  33

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成函数fun(char*S,int a[]),其功能是把S中出现的数字转换成数字存储在a[]中,然后返回转换的个数。
    例如:S="1234abcdef567":
    则:a[]qb存储着1234567
    返回:7
    注意:不能修改程序的其他部分,只能修改fun()函数。
    1    #include
    2    int fun(char*S,int a[])
    3  {
    4
    5  }
    6    int main()
    7    {
    8    int a[1024];
    9    int len=fun("1234abcdef567",a);
    10    for(int i=0;i    11    {
    12    cout<<<’ ’;
    13    }
    14    cout<    15    cout<    16    return 0 ;
    17    )

选项

答案1 int J=0 ; 2 for(int i=0 ; S[i]!=0 ; i++) //字符串内循环 3 { 4 if(S[i]>=’0’&&s[i]<=’9’) //判断字符是否为0~9的字符 5 { 6 a[j++]=S[i]一’0’; //如果为0~9的字符,转换为整型 7 } 8 } 9 return j ; //返回数字个数

解析 (1)该程序功能是把字符串中出现的数字转换成数字存储在数组中,然后返回转换的个数。其中,字符和整型的ASCII差为96,即为’0’的ASCII码值。
    (2)从已给部分源程序的main主函数开始入手,核心函数fun实现题目中要求的功能,其中int fun(char*s,int a[])中的S为要转换的字符串,a为存放转换为数字的数组,返回值为转换的个数。
    [解题思路]
    (1)i变量用来记录转换的个数,首先初始化为0。
    (2)然后利用for循环对每一个当前字符进行判断是否为数字字符。
    (3)如果为数字字符,就将其减去字符‘0’,即实现字符和整型的转换。并且,将i的变量值加1。
转载请注明原文地址:https://kaotiyun.com/show/APNp777K
0

最新回复(0)