C++ Studio (二) ----- atoi()函数的实现 (自己编写功能)

上一篇博客讲的是atoi()函数的功能及举例,现在呢,就自己写写代码(根据atoi()的功能)来表示atoi()函数的实现。我在这里先把atoi()函数的功能贴出来,也好有个参考啊~~~

atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时(‘\0‘)才结束转化,并将结果返回(返回转换后的整型数)。

atoi()函数实现的代码:

  

 1 /*
 2 * name:xif
 3 * coder:[email protected]@yahoo.cn
 4 * time:08.20.2012
 5 * file_name:my_atoi.c
 6 * function:int my_atoi(char* pstr)
 7 */
 8
 9 int my_atoi(char* pstr)
10 {
11     int Ret_Integer = 0;
12     int Integer_sign = 1;
13
14     /*
15     * 判断指针是否为空
16     */
17     if(pstr == NULL)
18     {
19         printf("Pointer is NULL\n");
20         return 0;
21     }
22
23     /*
24     * 跳过前面的空格字符
25     */
26     while(isspace(*pstr) == 0)
27     {
28         pstr++;
29     }
30
31     /*
32     * 判断正负号
33     * 如果是正号,指针指向下一个字符
34     * 如果是符号,把符号标记为Integer_sign置-1,然后再把指针指向下一个字符
35     */
36     if(*pstr == ‘-‘)
37     {
38         Integer_sign = -1;
39     }
40     if(*pstr == ‘-‘ || *pstr == ‘+‘)
41     {
42         pstr++;
43     }
44
45     /*
46     * 把数字字符串逐个转换成整数,并把最后转换好的整数赋给Ret_Integer
47     */
48     while(*pstr >= ‘0‘ && *pstr <= ‘9‘)
49     {
50         Ret_Integer = Ret_Integer * 10 + *pstr - ‘0‘;
51         pstr++;
52     }
53     Ret_Integer = Integer_sign * Ret_Integer;
54
55     return Ret_Integer;
56 }  

  

现在贴出运行my_atoi()的结果,定义的主函数为:int  main  ()

  

  

 1 int main()
 2 {
 3     char a[] = "-100";
 4     char b[] = "456";
 5     int c = 0;
 6
 7     int my_atoi(char*);
 8
 9     c = atoi(a) + atoi(b);
10
11     printf("atoi(a)=%d\n",atoi(a));
12     printf("atoi(b)=%d\n",atoi(b));
13     printf("c = %d\n",c);
14
15     return 0;
16 }  

运行结果:

时间: 2024-08-03 09:04:23

C++ Studio (二) ----- atoi()函数的实现 (自己编写功能)的相关文章

C语言itoa()函数和atoi()函数详解(整数转字符C实现)

C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明.● itoa():将整型值转换为字符串.● ltoa():将长整型值转换为字符串.● ultoa():将无符号长整型值转换为字符串.● gcvt():将浮点型数转换为字符串,取四舍五入.● ecvt():将双精度浮点型值转换为字符串

C语言itoa函数和atoi 函数

C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转 换为字符串的一个例子:  # include <stdio.h>  # include <stdlib.h>  void main (void)  {  int num = 100;  char str[25];  itoa(num, str, 10);  printf("The number 'num' is %d and the string 's

C语言itoa()函数和atoi()函数详解(整数转字符)

http://c.biancheng.net/cpp/html/792.html C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio.h> # include <stdlib.h> void main (void) { int num = 100; char str[25]; itoa(num, str, 10); printf("The num

C++沉思录之二——虚函数使用的时机

虚函数使用的时机 为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗: 2. 虚函数不总是提供所需的行为: 3. 当我们不考虑继承当前类时,不必使用虚函数. 必须使用虚函数的情况: 1. 当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数. C++沉思录之二--虚函数使用的时机,布布扣,bubuko.com

【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

sdut 面向对象程序设计上机练习二(函数模板)

面向对象程序设计上机练习二(函数模板) Time Limit: 1000MS Memory limit: 65536K 题目描述 利用数组和函数模板求5个数最大值(分别考虑整数.单精度.长整数的情况). 输入 分别输入5个int型整数.5个float 型实数.5个long型正整数. 输出 分别输出5个int型整数的最大值.5个float 型实数的最大值.5个long型正整数的最大值. 示例输入 11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234