atoi() 函数:atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进)等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而在遇到非数字或字符串结束符(‘\0’)才结束转换,并将结果返回。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。
C语言 stdlib 库里面的atoi函数,只能把字符串转换为十进制的数,但是我们自己实现的时候,可以让他的功能更加强大,让它也可以转为 十六进制和八进制。
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
using namespace std;
/*
面试题:字符串转整数
1、考虑负数如何处理
2、如果遇到非数字 结束 或者为 0
*/
int d_atoi(const char* str)
{
int num = 0;
int i = 0;
int n = strlen(str);
while(i<n && isdigit(