首页 > 代码库 > 典型c库函数的实现
典型c库函数的实现
StrToInt:字符串转int输出
1 enum Status 2 { 3 kValid = 0, 4 kInvalid = 1, 5 }; 6 7 int StrToInt(const char* str) 8 { 9 g_nStatus = kInvalid;10 long long num = 0;11 12 if(str!=NULL && *str != ‘\0‘)13 {14 bool minus = false;15 while(*str =="")16 str++;17 if(*str ==‘+‘)18 {19 str++;20 }21 else if(*str==‘-‘)22 {23 str++;24 minus = true;25 }26 27 if(*str !=‘\0‘)28 {29 num = StrToIntCore(str, minus);30 }31 }32 return (int)num;33 }34 35 int StrToIntCore(const char *digit, bool minus)36 {37 long long num = 0;38 while(*digit !=‘0‘)39 {40 if(*digit >=‘0‘ && *digit<=‘9‘)41 {42 int flag = minus ? -1:1;43 num =num*10 + flag*(*digit -‘0‘);44 45 //判断整数是否发生上溢/下溢46 if((!minus && num > 0x7FFFFFFF) //最大正数:2^32-147 || (minus && num <(signed int)0x80000000))//最小负数:2^3248 {49 num = 0;50 break;51 }52 digit++;53 }54 else55 {56 num = 0;57 break;58 }59 }60 if(*digit==‘\0‘)61 {62 g_nStatus = kValid;63 }64 65 return num;66 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。