/* 为下面的函数原型编写函数定义:
int ascii_to_integer(char *str);
这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。请不必担心算数溢出。
提示:这个技巧很简单:你每发现一个数字,把当前值乘以10,并把这个值和新的数字所代表的值相加。
*/
#include <stdio.h>
int ascii_to_integer(char *str)
{
int ret = 0;
while(*str != '\0')
{
if((*str <'0') || (*str >'9'))<span style="font-family: Arial, Helvetica, sans-serif;">//这句if语句很坏,就是你每次指向的都必须是数字字符才行,</span>
return 0;//只要字符串中有空格、字母等。它都会返回0;
else
{
ret = ret * 10 + (*str-'0');
}
str++;
}
return ret;
}
int main()
{
int ret =ascii_to_integer("1234");//
printf("%d\n",ret);
}