C语言库函数名: atoi
功 能: 把字符串转换成整型数.
名字来源:array to integer 的缩写.
原型: int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。 注意:此函数第一个非空字符一定要是数字或者正负号,否则将得到0
头文件: #include
程序例:
1)
#include
#include
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}
执行结果
string = 12345.67 integer = 12345
2)
#include
#include
int main()
{
char a[] = "-100" ;
char b[] = "123" ;
int c ;
c = atoi( a ) +atoi( b ) ;
printf("c = %d\n", c) ;
return 0;
}
执行结果
c = 23
简单的实现atoi函数源代码:
int my_atoi(const char *str){
int result = 0;
int signal = 1; /* 默认为正数 */
if((*str>='0'&&*str<='9')||*str=='-'||*str==' +'){
if(*str=='-'||*str=='+ '){
if(*str=='-')
signal = -1; /* 输入负数 */
str++ ;
}
}
else return 0;
/* 开始转换 */
while(*str>='0'&&*str<='9')
result = result*10 (*str -'0');
return signal*result;
}
定义函数
doubleatof(constchar*nptr);
函数说明
atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到*非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2(浮点数的指数表示法)。此函数能识别小数点,如果小数点前面都是数字,则返回值的小数点的位置与原数相同。
返回值
返回转换后的浮点型数。
附加说明
atof()与使用strtod(nptr,(char**)NULL)结果相同。
范例
/*将字符串a与字符串b转换成数字后相加*/
#include
main()
{
char*a=”-100.23”;
char*b=”200e-2”;
floatc;
c=atof(a) atof(b);
printf(“c=%.2f\n”,c);
}
执行
c=-98.23