问答题 使用VC6打开 下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数num(char* str)实现返回字符串中非数字的个数。
例如:abc123abc45
返回输出:6
将函数num()补充完整。
注意:请勿改动主函数。
#include <iostream.h>
int num(char* str)
{
}
int main()
{
char str[1024];
cout < < "please input a string:" < < endl;
cin.getline(str, 1024);
cout < < "char number is " < < num (str) < < endl;
return 0;
}
【正确答案】
【答案解析】int number=0;
for(int i=0;str[i]!=0; i++)
if(Str[i]>"9"|| str[i]<"0")
//非数字字符
number++;
return number;
答案考生文件夹 [解析] 函数num(char* str)实现返回字符串中非数字的个数,数字从0开始到9结束,共有10个,因此判断数组字符比较简单,即“"0"<=str[i]<="9"”,除数字字符外其余的都是非数字字符,利用这个关系可迅速判断该字符是否是非数字字符。
(1)利用循环搜索数组str中的元素,循环变量从0开始,直到str[i]=0(到了字符数组的尾),不断地读取str中读取元素。
(2)每读到一个元素判断是否是非数字字符,即满足条件“str[i]>"9||str[i]<"0"”的字符为非数字字符,非数字字符个数加1,循环结束就得到了非数字字符的个数。