要求
输入一个字符串(长度在100以内),统计其中数字字符出现的次数。
样例输入
Ab100cd200
样例输出
6
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
scanf("%s",str);
int i,sum=0;
for (i = 0; i < strlen(str); i++)
{
if (str[i] >= '0' && str[i] <= '9')
{
sum++;
}
}
printf("%d",sum);
return 0;
}
学习别人的算法:
#include<stdio.h>
int main()
{
char a[101];
int i=0,s=0;
gets(a);
for(i=0;*(a+i)!='\0';i++)
{
if(*(a+i)>=48&&*(a+i)<=57)
s++;
}
printf("%d",s);
return 0;
}
总结:
相比之下,我写的代码就显得朴实无华,没有什么亮点,别人的代码主要是运用了指针,这里简单的解释一下,其实数组名本质上也是一个指针,在地址上存储了数组头节点的地址,就是说其实数组名就是指向数组头节点的指针。理解了这些,这句语句*(a+i)!=’\0’;就好理解了。if((a+i)>=48&&(a+i)<=57) 这里的48和57其实是Ascll码,代表了0和9。