小工具知识网

当前位置: 首页 > 行业知识 > stoi家族函数详解

行业知识

stoi家族函数详解

2026-10-26 05:23:17 来源:互联网转载

atoi家族函数详解

  • 1.atoi函数
    • 1.1函数原型
    • 1.2函数使用
    • 1.3函数使用的注意事项
    • 1.4atoi函数的模拟实现
    • 2.其它函数

      atoi函数家族中包含atof、atol、_atoi64

      ()

      他们的作用为将字符串转换成double(atof)、integer(atoi、_atoi64)、long(atol)

      他们都被包含在头文件中

      ()

      下面我们来详细阐述他们的作用

      1.atoi函数

      1.1函数原型

      int atoi( const char *string );

      函数参数:是一个以null结尾的字符串的指针

      函数返回值:返回的是一个转换过后的整数

      1.2函数使用

      函数的使用较为简单

      //atoi函数#include //函数使用包含头文件int main(){char arr[] ="-1234";int ret = atoi(arr);printf("%d", ret);return 0;}

      1.3函数使用的注意事项

      1.函数首先会将从起始地址开始后连续的空格忽略,读取空格后有数字的地方,如果是数字中也含有空格,则停止读取,返回已读取的内容

      2.如果存在-/+,如果符号在数值位之前,也就是-123,那么直接读取即可,如果符号在数值位中,也就是1-23或123-,则对应得,只读取1或123,也就是说,符号的检测只发生在数值位读取之前,在读取数值位时。如果读取的不是正确的数值的话,会停止读取

      3.如果字符串中第一个非空字符不是有效的整数,或是传入空指针,或传入空值,则不执行任何转换,并返回0

      1.4atoi函数的模拟实现

      //atoi函数的模拟实现#include //使用了字符分类函数,包含头文件//isspace:如果参数为空白字符就返回真//isdigit:如果参数为十进制字符就返回真int Myatoi(const char* pa){//如果传入空指针或空字符,直接返回0if (*pa == '

      2.其它函数

      ' || *pa == NULL)return 0;//首先要清理空格while (isspace(*pa))pa++;int ret = 0;//存储返回值int type = 1;//定义正负号,用type乘以一个数,type只能表示1和-1//判断正负号if (*pa == '+')pa++;else if (*pa == '-'){type = -1;pa++;}//计算值while (isdigit(*pa)){ret = ret * 10 + (*pa - '0') * type;pa++;}return ret;}int main(){char arr[] = "NULL";int ret1 = atoi(arr);printf("ret1 = %d\n", ret1);int ret2 = Myatoi(arr);printf("ret2 = %d\n", ret2);return 0;}

      stoi函数家族的其它函数与atoi函数相同,具体·用法参考atoi函数即可

      但是要注意一些区别:

      1.stoi和stol都用于整形转换,但是atol可以处理更大的数值范围

      2.注意返回类型

      3._atoi64用于在32位机器上处理64位整数,但是对于64位整数,建议使用atoll,返回long long类型,因为long long类型是C99标准定义的64位整数类型,而_int64类型只是特定编译器的拓展

上一篇:服务器怎么修复驱动程序?

下一篇:怎么开通本地服务器端口?