数字0对应的ascii码为48,往后1,2.....9依次在48上加1为ascii值,9为57。
#include <stdio.h>
int fun(char *s)
{ int i=0,k=0,j;
char *p;
p=s;
while(*p!=0) p++,i++;
for(j=0;j<i;j++)
{
if(*s>=48 && *s<=57)
k++;
s++;
}
return k;
}
void main()
{ char *s="2def35adh25 3kjsdf 7/kj8655x";
printf("%s\n",s);
printf("%d\n",fun(s));
}
int fun(char *s)函数还可以这样写
int fun(char *s)
{ int n=0;
char *p;
for(p=s;*p!='\0';p++)
if((*p>='0')&&(*p<='9'))
n++;
return n;
}
两种写法方式中,一种是知道数字0-9的ascii码,根据ascii码推算出数字个数,另外一种是根据字符来直接推算。