字符转整型,比系统的好用!a2iLxx

来源:互联网 发布:阿里域名,动态ip 编辑:程序博客网 时间:2024/05/17 03:27
#include "string.h"#define INVALID_VALUE_LXX((1 << (8 * sizeof(int) -1)) - 1)/*有符号整型最大值,如果越界将为0*//* 2^x == 1 << x, and - is prioty of << */bool is0to9(char ch){if ('0' <= ch && ch <= '9'){return true;}else{return false;}}int a2iLxx(char* ch){int index = 0;int retVal = 0;bool flag = false;if (NULL == ch){return INVALID_VALUE_LXX;}if ('-' == ch[0]){/*负数*/flag = true;index = 1;}for (; ch[index] != '\0'; index++){if (!is0to9(ch[index])){return INVALID_VALUE_LXX;}retVal = retVal * 10 + ch[index] - '0';}if (flag){return -retVal;}else{return retVal;}}void main(){char ch1[] = "123";char ch2[] = "-234";char ch3[] = "0";char ch4[] = "0x123";int a = INVALID_VALUE_LXX;/*调试查看值*/a = a2iLxx(ch1);a = a2iLxx(ch2);a = a2iLxx(ch3);a = a2iLxx(ch4);}

0 0
原创粉丝点击