c语言,字符串转换成整数
来源:互联网 发布:java instanceof 编辑:程序博客网 时间:2024/06/06 16:56
c语言的数字字符串转换为整数,1.可接受“123 2123”处理为1232123;2.空指针、正负号、非纯数字字符串、数据越界溢出的错误处理。
#include<stdio.h>#include<stdlib.h>#include<limits.h>//子函数的声明int StrToInt(char * string);void main(){//变量的声明char str[20];//边界值-2147483648和2147483647,最多需要12个字符int result;//输入部分printf("请输入:");//接受输入数据gets(str);//scanf接受到空格时中断,但gets不,例如“244 754”//实现result = StrToInt(str);//输出if(result != 0){printf("结果:%d\n",result);}}//把一个字符串转换成整数int StrToInt(char* string){int sign = 1;//1代表+正数,-1代表负数__int64 number = 0;//声明为long long类型,防止数据溢出//1.空指针的判断if(NULL == string){printf("空指针异常!\n");return 0;}//2.正负号intif(*string =='+'){//设置sign标记sign = 1;*string++;}if( *string =='-'){//设置sign标记sign = -1;*string++;}//3.由于返回值为0做了异常处理,真正的"0"需要特殊处理if(string == "0"){printf("结果:0\n");}while(*string != '\0'){int normalflag0 =1;//4.空格判断if(*string == ' ' || *string == '\t'){*string++;}//5.非数字字符时,错误处理if(*string < '0' || *string > '9'){printf("包含非数字字符!\n");number = 0;break;}//6.边界值,最大正整数和最小负整数number = number * 10 + sign*(*string - '0');if((sign==1 && number>INT_MAX)|| (sign==-1 && number<INT_MIN)){//INT_MAX和INT_MIN的头文件是<limits.h>表示int所能表示的最大和最小的数printf("有符号整型超过溢出!最小到-7fffffff-1即-2147483648,最大到7fffffff即2147483647\n");number = 0;break;}string++;}return (int)number;}
0 0
- c语言中的字符串转换成整数
- c语言,字符串转换成整数
- c语言字符串整数转换
- C语言 整数字符串转换成int整数
- C语言习题 整数转换成字符串
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- C语言实现把字符串转换成整数
- C语言中将字符串转换为整数
- 【C/C++】字符串转换成整数
- c 字符串 整数转换
- Linux环境C语言把整数转换成字符串再保存该字符串数据为文本
- c语言字符串与整数之间的转换
- c语言字符串与整数之间的转换
- c语言字符串与整数之间的转换
- c语言字符串与整数之间的转换
- Java开发中的23种设计模式详解(转)
- luogu1151 亲戚
- 【例题】【线段树】
- 特别注意用UpdateData(FALSE)还是SetDlgItemText(IDC_EDIT_Coordinate, m_strCoor);
- POJ2352 Stars[树状数组]
- c语言,字符串转换成整数
- LeakCanary源码分析
- ReentrantLock介绍和实现
- UOJ #82. 【UR #7】水题生成器
- Servlet的监听器Listener
- (巩固基础篇)排序算法:①插入排序②希尔排序③冒泡排序④选择排序⑤快速排序
- Codeforces Round #336 (Div. 2) B 暴力
- C语言中关于内存这个话题
- UOJ #113. 【UER #2】手机的生产