C语言—atoi函数的介绍以及实现
2017-02-18 17:20
351 查看
atoi函数的用法
我们在学习C语言中时常会使用到atoi函数,以及他类似的函数比如itoa函数等等,今天重点谈谈atoi函数。函数原型:int atoi(const char* nptr);
函数的用法:参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停
止转换,返回整型数。否则,返回零。
用法举例:
该函数最重要的是它的实现做法,用大家都会用,但是这么好用的函数他在实现的时候就没有这么容易了。在它实现的过程中,不要觉得直接将字
母换成数字有多简单,举个例子“1223ftyu”,这个相对来说转换就容易,但是如果是"-1223ftyu"怎么办?
还有" 2 4 6"这个怎么办?这里主体思想很简单,但是你要想讲这个函数写好,你需要把它的枝枝叶叶补齐,所以我们一起来看看这个怎
么搞~
#include<stdio.h> #include<Windows.h> #include<ctype.h> #include<assert.h> enum STATE { VALLD, //0 INVALLD //1 }; enum STATE state = INVALLD; int my_atoi(const char *p) { int flag = 1; long long ret = 0; assert(p != NULL); //提前字符串结束情况 if (*p == '\0') { return 0; } //检验是否为空格字符 while (isspace(*p)) { p++; } //判断正负号. if (*p == '+') p++; if (*p == '-') { flag = -1; p++; } while (isdigit(*p))//检验是否为数字 { ret = ret * 10 + flag*(*p - '0'); if (ret > INT_MAX && ret < INT_MIN) { return 0; } p++; } //正常结束 if (*p == '\0') { state = VALLD; return (int)ret; } return 0; } int main() { char *p = "-213333"; int i = my_atoi(p); printf("%d", i); system("pause"); return 0; }
看看运行结果:
相关文章推荐
- C语言笔试题(15)——atoi函数实现
- C语言atoi()和itoa()函数的实现
- 【C语言】【笔试题】实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。
- C语言中字符串系列的函数实现以及注意事项
- C语言中字符串系列函数的实现以及注意事项
- atoi函数介绍与代码实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 【C语言】【笔试题】实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。
- 【C语言】【笔试题】实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数。
- 【转载】C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 学习笔记——atoi函数的用法及用C语言实现atoi
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言中strtok使用方法与原理,以及自实现函数功能
- 一.数组和指针的差别二.函数的好处以及使用函数的注意项。三.用c语言如何实现面向对象?c语言哪些点体现了面向对象。
- C语言实现strlen,atoi, strcpy等函数
- C语言atoi()和itoa()函数的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C语言 atoi 函数的实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)