为下面的函数原型编写函数定义:
int ascii_to_integer(char *str);
这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。请不必担心算数溢出。
提示:这个技巧很简单:你每发现一个数字,把当前值乘以10,并把这个值和新的数字所代表的值相加。字符指针减去‘0’即将其对应的ASCII码值转换为整型。
#include <stdio.h> int ascii_to_integer(char *str) { int i=0; int m=0; int sum=0; char *ch = str; while(*ch != '\0') { if(*ch<48 || *ch>57) //判断字符是否是数字 return 0; i++; ch++; } ch=str; for(;m<i;m++) { sum=sum*10+(*(ch+m)-'0'); //减'0'就是将ASCII转换为整形 } return sum; } int main() { char *str="123"; int n; n=ascii_to_integer(str); printf("%d\n",n); return 0; }
时间: 2024-10-10 19:49:12