请问这个C程序为什么输出是123 而不是12345

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:33:09
#include<stdio.h>
#include<ctype.h>
long func (char *s);
main()
{ char s[]="123cc45jbjb";
printf("%ld",func(s));
}
long func (char *s)
{ long n; int sign;
for(;isspace(*s);s++);
sign=(*s=='-')? -1:1;
for(n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
return (sign * n);
}



func里读到 *s == 'c'的时候循环就退出了啊

稍微改下即可
for(n=0;*s;s++)
if(isdigit(*s)) n=10*n+(*s-'0');

因为他的定律决定了他的一切!
所以说,这是123,而不是12345