8、请编写能直接实现 int atoi(const char * pstr)函数功能的代码
2012-09-05 19:34
399 查看
/************************************************************************/ /* 8、请编写能直接实现 int atoi(const char * pstr)函数功能的代码 */ /************************************************************************/ //考虑全局变量返回结果是否有效,和大数问题 bool isToIntValid =true; int strToInt(const char *str) { long long num = 0; int mark = (*str== '-' ? -1: 1); long long upperBound = numeric_limits<int>::max();; if(mark == -1) ++upperBound; const char* temp = (*str == '+' || *str == '-') ? str + 1: str; for( ;*temp >= '0' && *temp <= '9'; ++temp) { num = num * 10 + *temp - '0'; if(num > upperBound) { //越界,atoi中对于越界直接取最值 isToIntValid = false; num = upperBound; break; } } if(*temp !='\0' || *str == '0') isToIntValid = false; return static_cast<int>(mark * num); } void testOfstrToInt() { assert(atoi("+1234") == strToInt("+1234")); assert(atoi("-1234") == strToInt("-1234")); assert(atoi("+aaa234") == strToInt("+aaa234")); assert(atoi("aaa1234") == strToInt("aaa1234")); assert(atoi("-1234a") == strToInt("-1234a")); assert(atoi("1234") == strToInt("1234")); assert(atoi("12a34") == strToInt("12a34")); assert(atoi("aaaa") == strToInt("aaaa")); assert(atoi("0123") == strToInt("0123")); //大数 assert(atoi("123456789012345123456") == strToInt("123456789012345123456")); assert(atoi("-123456789012345123456") == strToInt("-123456789012345123456")); }
相关文章推荐
- 请编写能直接实现 int atoi(const char * pstr)函数功能的代码
- 编写实现strstr()函数功能的代码
- 采用MPI_Send 和MPI_Recv 编写代码来实现包括MPI_Bcast、MPI_Alltoall、MPI_Gather、MPI_Scatter 等MPI 群集通信函数的功能
- 请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
- 自己模拟strlen库函数写的功能函数my_strlen实现strlen的功能,完整代码
- //4. 编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列。 //要求:不能使用C函数库中的字符串操作函数。
- 编写一个Date类:能够实现增加(减少)任意天的功能,含详细代码
- //1、有一个字符串开头或结尾含有n个空格(” abcdefgdddd ”),欲去掉前后空格,返回一个新字符串。 //要求1:请自己定义一个接口(函数),并实现功能;70分 //要求2:编写
- 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。
- 编写一个函数reverse_string(char *string),递归实现
- 编写实现 函数char *strcat(char *dest ,char *src)
- 4、实现malloc内存分配函数功能一样的代码
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- 编写一个函数,实现两个字符串的连接功能
- 编写函数void change(char *a,char *b,char*c)。 函数功能是首先把b指向的字符串逆向存放
- JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
- 编写函数void count(char a[],char w[][10],int n,int b[])。功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分
- 编写一个函数,实现把C/C++程序代码中的注释去掉,并把结果返回。