C语言中将字符串转化为数字的函数总结

atoX系列函数

1、atoi函数

所在库<stdlib.h>

原型:int atoi(const char *str);

形参:一个指向字符串的指针

返回值:这个字符串中的数字对应的 int 型数

功能:将从字符串的第一个位置开始,略去空白,将字符型数字转化为数值型数字,直到遇到第一个非数字型字符时停止。如果字符串中第一个元素不是数字,那么返回0。可以识别正负号。

例子:

#include<stdlib.h>

#include<stdio.h>

int main()

{

      char buf[20];

      fgets(buf, 20, stdin);

      int i = atoi(buf);

      printf("%d\n", i);

      return 0;

}

如果输入为:       -123.43ui8

此时atoi把它转化为-123,对应输出为-123

如果输入为:e123

此时atoi把它转化为0,对应输出为:0

2. atol

所在库<stdlib.h>

原型:long atol(const char *str);

形参:一个指向字符串的指针

返回值:这个字符串中的数字对应的长整型数

功能:将从字符串的第一个位置开始,略去空白,将字符型数字转化为数值型数字,直到遇到第一个非数字型字符时停止。如果字符串中第一个元素不是数字,那么返回0。可以识别正负号。

3. atof

所在库<stdlib.h>

原型:double atol(const char *str);

形参:一个指向字符串的指针

返回值:这个字符串中的数字对应的double型数

功能:将从字符串的第一个位置开始,略去空白,将字符型数字转化为数值型数字,直到遇到第一个非数字型字符时停止。如果字符串中第一个元素不是数字,那么返回0。可以识别正负号。

#include<stdlib.h>
int  main()
{
char *a= "-100.23" ;
char *b= "200e-2" ;
doublec;
c= atof (a)+ atof (b);
printf (“c=%.2lf\n”,c);
return  0;
}
结果 c=-98.23

strtoX系列函数

long int strtol ( const char * str, char ** endptr, int base );
unsigned long int strtoul ( const char * str, char ** endptr, int base );
double strtod ( const char * str, char ** endptr );
头文件<stdlib.h>
原型double strtod (const char* str, char** endptr);
形参:str是指向字符串开始的位置。
          endptr为第一个不能转换的字符的指针。
返回值:返回转换后的浮点型数;若不能转换或字符串为空,则返回 0.0。
功能:strtod() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。参数 str 字符串可包含正负号、小数点或E(e)来表示指数部分。如123. 456 或123e-2。

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值