为下面这个函数原型编写函数定义:
int ascii_to_integer(char *string)
这个字符串参数必须包含一个或多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。
析:“a10 “ -->0
"100" --> 100
me
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
int result;
int ascii_to_integer(char * string);
char array[20];
gets(array);
result = ascii_to_integer(array);
printf("%d\n",result);
}
int ascii_to_integer(char * string)
{
int i,sum=0;
for(i=0;i<strlen(string);i++)
{
if( *(string+i)<48 || *(string+i)>57)
return 0;
}
return ( atoi(string));//调用了atoi();函数 stdlib.h
}
网上搜来:
int ascii_to_integer(char *string)
{
int n = 0;
int result = 0;
while(*string != '/0')
{
if( (*string)<'0' || (*string)>'9' )
return 0;
n = *string + (0 - '0');//ascii_to_integer
result = result * 10 + n; //妙
string++;
}
return result;
}