1.了解atoi函数
函数库:<stdlib.h>
atoi()函数的功能:将字符串转换成整型数;
atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数),转换失败返回0
2.模拟实现
头文件:
#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h>
主函数代码:
1. int main() 2. { 3. char arr[20] = { "a-21432avb" }; 4. printf("%d",my_atoi(arr)); 5. return 0; 6. }
atoi模拟实现:
int my_atoi(char* str) { assert(str != NULL); int ret = 0;//最后的返回值的绝对值 int sign = 1;//返回值的符号 //这个循环的目的是找到数字和确定数字的正负 while (*str != '\0') { if (*str <='9' && *str >= '0') { str--; if (*str == '-') { sign = -1; } str++; break; } str++; }//这时,sign为符号,str指向第一个数字 //这个循环是把字符串的数字赋值给ret while (*str != '\0') { if ('0'<*str && *str <= '9') { ret = ret * 10; ret = ret + (*str-48);//通过ascii表可知,减去48就是本身数值,否则1就是49 str++; } else if (*str == '0')//防止前面有0使shi多* { str++; } else { break; } } return ret*sign; }