将字符串转化为整数问题(C++)



1.将字符串转化为整数问题(C++)

仿照atoi实现代码:

// 仿照atoi函数实现字符串转化为整形数据问题//#include "stdafx.h"enum MyEnum{eValid = 0,//合法unValid //不合法};int mState = eValid;//定义全局变量,,输入非法时设置该全局变量;//则通过检查该全局变量就能够判断输入是否合法;//实现字符串转化为整形数据atoi问题int StrToInt(char* str){//变量初始化int number = 0;mState = unValid;//判断字符串是否为空if (str != nullptr){/********判断字符是否合法*********///首先判断第一位是否为“+”或“-”号bool minus = false;//正负标志if (*str == '+'){++str;}else if (*str == '-'){++str;minus = true;}//若两者都不是,则不进行++str;/*********处理字符转换**********///判断是否为合法字符while ((*str >= '0')&&(*str <= '9')){number = number * 10 + (*str – '0');++str;}//判断是否为正常循环完毕if (*str == '\0'){//处理数据mState = eValid;if (minus){number = 0 – number;//转换为负数}}else //字符串有错情况{number = 0;}}return number;}int _tmain(int argc, _TCHAR* argv[]){//测试printf("%d\n", StrToInt("+23"));printf("%d\n", StrToInt("-23"));printf("%d\n", StrToInt("23"));printf("%d\n", StrToInt("a23"));return 0;}

只要心中有希望存在,就有幸福存在。

将字符串转化为整数问题(C++)

相关文章:

你感兴趣的文章:

标签云: