atoi 函数自实现

 1 #include <stdio.h>
 2 /*
 3 编码实现字符串转整型的函数(实现函数 atoi 的功能)。如将字符串“123”转化为 123,
 4 “-0123”转化为-123
 5 */
 6 int myatoi(const char *p)
 7 {
 8     int val = 0;
 9     int sign;
10     while(*p == ‘ ‘||*p == ‘\t‘)p++;
11     if(*p == ‘-‘||*p == ‘+‘)
12     {
13         sign = (*p == ‘-‘?-1:1);//必须用括号,= 和 ==  优先级不一样
14         p++;
15     }
16
17     while(*p-‘0‘>=0&&*p-‘9‘<=0)
18     {
19         if(*p == ‘0‘)//考虑符号 后第一个字符为‘0‘的情况-0123  没有这样的数字吧,直接归0
20             return 0;
21         else
22             val = val*10+(*p-‘0‘);
23         p++;
24     }
25     return sign*val;
26
27 }
28 int main(void)
29 {
30     char *p = "        -123a44sdfdf";
31     int val = myatoi(p);
32     printf("val = %d\n",val);
33
34     return 0;
35 }

原文地址:https://www.cnblogs.com/wangchaomahan/p/10049811.html

时间: 2024-10-22 02:04:38

atoi 函数自实现的相关文章

【C语言】模拟实现atoi函数

atoi(表示 ascii to integer)是把字符串转换成整型数的一个函数. atoi()函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0 我们在模拟实现atoi函数时,要注意以下几点: 1.字符串之前的空白问题 2.正负号 3.字符串为空时 4.

Hdu 1106 排序 (atoi函数与 strtok函数的应用

链接: http://acm.hdu.edu.cn/showproblem.php?pid=1106 好久都没刷题了,今天突然特别怀念以前刷题的日子,所以就找了几道水题来做做~~呵呵 在写这篇博客之前呢,已经很明了自己已经大三了,时光匆忙,在还没来得及转过头来,就已经过了两年了大学,原来走了这么远了~~感觉再怎么样,大三还是不敢偷懒~~不过有时候还真是挺迷茫的说实话,在这里呢,真心希望能得到你们各位的建议,只要是对我未来就业有好处的,我都会虚心取纳,(BTW:我是学嵌入式方向的)万分感谢~~~

atoi()函数

atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数). atoi()函数实现的代码: /* * name:xif * coder:[email protected]@yahoo.cn * time:08.20.2012 * file_name:my_atoi.c * function:int my_atoi(char* pstr)

实现atoi函数

atoi函数最关键的地方是想好测试用例: 输入为空字符串,输出为0; 输入字符串大小超过INT_MAX输出INT_MAX; 输入字符串大小小于INT_MIN输出INT_MIN; 输入字符串中含有不规则字符,中断atoi, 如"01a4" 输出1; 输入字符串开头和结尾含有空格,忽略空格,如输入"  +01  "输出1; 输入字符串开头除空格以外如果是"+"和"-",视为正确输入. class Solution { public

atoi函数(将字符串转化为int)

头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的整型数:如果 str 不能转换成 int 或者 str 为

atoi()函数的实现

atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数). atoi()函数实现的代码: [cpp] view plain copy print? /* * name:xif * coder:[email protected]@yahoo.cn * time:08.20.2012 * file_name:my_atoi.c * fun

模拟实现atoi函数

atoi函数就是把一串字符串转换为int型整数的函数,通过将字符串中的字符一个一个强制类型转换,并且存入一个临时数组中,再将数组中的数字处理一下即可得到我们需要的整数. 实现这个函数的过程中,我们需要注意负数的处理,要进行一次判断,确定返回值的正负. 其他的字符按照ASCII码表进行转换即可. 下面是代码: #include<stdio.h> #include<math.h> int my_atoi(char a[],int sz) { int i = 0, count = 0, 

C语言atoi()函数:将字符串转换成int(整数)

头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的整型数:如果 str 不能转换成 int 或者 str 为

有趣的atoi()函数

atoi()函数是C语言库中的一个比较有意思的函数,有趣的地方在于,他可以将数字字符串转化为相应的数字,当然我们也可以通过字符间换算转化为相应数字,但有库函数atoi()使得代码简化许多.那么atoi()怎么用呢? 1.在c语言中直接包含在头文件stdlib.h头文件中,atoi()的形式参数为指针,所以要将字符串指针来传递.注意当atoi()读取到非数字字符时将会停止转换. 2.直接将string类型的字符串用char型指针进行指向即可.同样要包含头文件stdlib.h 3.c++中atoi函

自己实现atoi函数

#include <iostream> #include <string> using namespace std; // 自己实现atoi函数的过程 int My_atoi(const char *  p); int main() { string s; cout << "请输入一个字符串:"; cin >> s; cout<<"经过转换为整形为:"<<My_atoi(s.c_str())&l