[c语言] 模拟实现c语言库函数atoi
来源:互联网 发布:淘宝新开店铺卖什么好 编辑:程序博客网 时间:2024/06/04 18:11
题目:模拟实现c语言库函数atoi
思路:模拟实现库函数atoi,要考虑几种特殊情况,1.空格问题 2.符号问题 3.异常(字母)4.数字太大,越界问题。
//使用c语言编写函数,将一个数字字符串转换为对应的数字//功能类似于库函数的atoi,考虑异常输入#include <stdio.h> #include <string.h> #include <assert.h> #include <ctype.h> //isspace头文件#include<stdlib.h>int my_atoi(char const *p){int ret = 0;int a = 0;int flag = 1;assert(p != NULL);while (isspace(*p)) //isspace判断是否为空格{p++;}while (*p){if (*p == '+')p++;else if (*p == '-'){p++;flag = -1;}else if (*p >= '0'&& *p <= '9'){a = *p - '0';ret = (ret * 10 + a);p++;}elsereturn 0;//遇到输入异常的情况,就返回0,比如带有字母什么的。}//正数情况下,ret大于0x7FFFFFFF,或者负数情况下小于0x80000000就返回0if ((flag == 1 && ret > 0x7FFFFFFF) || (flag == -1 && ret < (signed int)0x80000000))return 0;return ret*flag;}int main(){printf("%d\n", my_atoi(" +2345"));printf("%d\n", my_atoi(" -2345"));printf("%d\n", my_atoi("+2345"));printf("%d\n", my_atoi("-2345"));printf("%d\n", my_atoi("2345"));printf("%d\n", my_atoi("2345"));printf("%d\n", my_atoi(""));printf("%d\n", my_atoi("123ab"));system("pause");return 0;}
1 0
- 模拟实现C语言中的库函数atoi
- C语言模拟实现库函数atoi
- [c语言] 模拟实现c语言库函数atoi
- 库函数atoi c语言实现
- 【c语言】 模拟实现库函数的atoi函数
- 模拟实现C语言库函数
- atoi ( )【C语言库函数源代码】
- C语言库函数学习: atoi
- c语言:模拟实现库函数的atoi函数,将字符串转换成整数
- C语言模拟实现atoi函数
- C语言模拟实现atoi函数
- linux c/c++ C语言库函数atoi
- 【C语言】模拟实现库函数srtcpy函数
- 【C语言】模拟实现库函数strcat函数
- 【c语言】模拟实现库函数strcpy函数
- 【c语言】 模拟实现库函数strcat函数
- 【C语言】模拟实现memcpy库函数
- c语言:模拟实现strstr库函数
- 安卓自定义容器控件,装载TextView,实现文字竖直轮播小喇叭广告条
- gradle的简单介绍
- shell 语句
- WebElement.getText()为空解决方法
- mount:No medium found
- [c语言] 模拟实现c语言库函数atoi
- Meme App with UIKit
- 继承与派生——两个程序的比较
- linux网络编程--UDP协议
- window apache+openssl双向认证配置
- [置顶] Java面试题全集(中)
- MySQL数据同步(一主多从)
- 没有基础的人如何自学裁缝?
- [置顶] Java面试题全集(下)