问答题 使用VC++6.0打开下的源程序文件2.cpp。完成函数fun(char*s, int a[]),其功能是把字符串s中的数字提取出来存储在a[]中,然后返回数字的个数。 例如s="1234abedef567",则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<<endl; cout<<i<<endl; 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。