1、下列程序运行时,输入为:stand*3#count5of6! (换行回车符),请分析程序,写出运行结果。
#include <stdio.h>
void main()
{
char *str,string[20];
int number,i;
i=0,number=0;
gets(string);
str=string;
for (i=0; *(str+i)!='\0'; i++)
if (*(str+i)>='0'&&*(str+i)<='9')
number=number*10+*(str+i)-'0';
puts(str);
printf("number=%d\n",number);
}
要注意的点是,指针指向的是字符数组,*(str+i)指向的是单个字符,所以将其进行比较要用'0'和'9',但是其本质是ASCII码的比较所以按下面这样改为数字也可以
#include <stdio.h>
int main()
{
char *str,string[20];
int number,i;
i=0,number=0;
gets(string);
str=string;
for (i=0; *(str+i)!='\0'; i++)
if (*(str+i)>=48&&*(str+i)<=57)