问题 问答题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char *s,int a[]),其功能是把字符串s中的数字提取出来存储在a[]中,然后返回数字的个数。
例如s="1234abcdef567",则a[]中存储着1234567,返回7。
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include<iostream.h>
int fun(char *s,int a[])


int main()

int a[1024];
int len=fun("1234abcdef567",a);
for(int i=0;i<len;i++)

cout<<a[i]<<’’;

cout<<end1;
cout<<i<<end1;
return 0;

答案

参考答案:int j=0;
for(int i=0;s[i]!=0;i++) //字符串内循环
{
if(s[i]>=’0’&&s[i]<=’9’) //判断字符是否为0~9的字符
{
a[j++]=s[i]=’0’; //如果为0~9的字符,转换为整型
}
}
return j; //返回数字个数

解析: 本题中变量j用来记录转换的个数,首先初始化为0,然后利用for循环判断每一个当前字符是否为数字字符。如果为数字字符,就将其减去字符“0”,即实现字符和整型的转换,并且将j的变量值加1。

问答题
填空题