为下面的函数原型编写函数定义:
int ascii_to_integer(char *str);
这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。请不必担心算数溢出。
提示:这个技巧很简单:你每发现一个数字,把当前值乘以10,并把这个值和新的数字所代表的值相加。
/************************************
*
* FileName: StoI.c
* Creator: Smart
* Date: 2015-3-15
*
************************************/
#include <stdio.h>
#define MAXSIZE 20 //The length of string
/*
* return the aim number
*/
unsigned long int string_to_integer(char *str)
{
unsigned int S=0;
char *p;
for(p=str;(*p)!='\0';p++)
{
if(((int)*p-'0')>=0&&((int)*p-'0')<=9)
{
S=S*10+(*p-'0');
}
else
{
return 0;
}
}
return S;
}
int main()
{
char a[MAXSIZE]="65239";
printf("%d\n",string_to_integer(a));
return 0;
}
运行结果: