【练习题】【C】atoi函数的代码实现
2014-11-05 23:02
543 查看
// Filename: main.c #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include "public.h" // 库函数atoi实现要求: // 1. 字符串开头如果有空格,则忽略;数字串中间有空格,则认为转换结束; // 2. 从正号“+”、负号“-”、数字“0-9”开始进行转换,直至遇到非数字“0-9”结束; // 3. 如果开头正号“+”(或者负号“-”)后面的字符含有正号“+”(或者负号“-”),则后面的正号“+”(或者负号“-”)处结束转换; // 4. 如果没有任何有效数字,返回0; int atoi_ex(const char *p) { int i = 0; bool flag = TRUE; // TRUE为正数,FALSE为负数 // 前导空格和正负号处理 while (p) { if (' ' == *p) { p++; } else if ('+' == *p) { flag = TRUE; p++; break; } else if ('-' == *p) { flag = FALSE; p++; break; } else { break; } } // 前导空格和正负号已处理完,这里只处理“0-9”的数字,不是数字则结束 while (p) { if (*p >= '0' && *p <= '9') { i = i * 10 + (*p - 0x30); p++; } else { break; } } if (FALSE == flag) { i = 0 - i; } return i; } int main() { char a[] = " -100"; int c, d; c = atoi(a); printf("c = [%d].\n", c); d = atoi_ex(a); printf("d = [%d].\n", d); return 0; }
相关文章推荐
- atoi函数介绍与代码实现
- 经典面试编程题--atoi()函数的实现(就是模拟手算,核心代码就一句total = 10 * total + (c - '0'); 但是要注意正负号、溢出等问题)
- atoi 函数自己写代码实现
- 实例讲解PHP中实现代码重用的两个函数
- 介绍如何通过代码实现模拟按键的函数
- asp下实现对HTML代码进行转换的函数
- asp下实现对HTML代码进行转换的函数
- 字符串操作函数的具体实现的代码
- ASP实现长文章自动分页的函数代码
- asp下实现IP限制函数代码
- ReplaceTrim 函数之asp实现过滤掉字符中所有的tab和回车和换行的代码
- atoi() & itoa()函数的内部的实现
- 语法分析表产生器的代码之三:自定义类的实现函数文件implement_syntax.cpp
- atoi() & itoa()函数的内部的实现
- ASP实现长文章自动分页的函数代码
- 一个函数5行代码即可实现完整的面向方面AOP编程功能
- javascript中keyCode代码对应表(函数实现)
- atoi() & itoa()函数的内部的实现
- FormatRemoteUrl函数之asp实现格式化成当前网站完整的URL-将相对地址转换为绝对地址的代码
- javascript trim 去空格函数实现代码