您的位置:首页 > 职场人生

面试题49—把字符串转化成整数

2017-06-28 10:11 190 查看
代码示例:

#include<iostream>
using namespace std;
bool flag;
int StrToInt(const char *str)
{
int num = 0;
flag = false;
if (str == NULL || *str == '\0')//处理空指针和空串
{
return num;
}
const char *temp = str;
bool minus = false;
if (*temp == '+')//处理首位是'+'的情况
{
temp++;
if (*temp == '\0')//处理只有一个‘+’的情况
{
return num;
}
}
else if (*temp == '-')//处理首位是'-'的情况
{
temp++;
minus = true;
if (*temp == '\0')//处理只有一个‘-’的情况
{
return num;
}
}
while (*temp != '\0')
{
if ('0' <= *temp&&*temp <= '9')
{
num = num * 10 + *temp - '0';
temp++;
}
else
{
break;
}
}
if (*temp == '\0')
{
flag = true;
if (minus)
num = 0 - num;//需要考虑溢出
return num;
}
else
{
flag = false;
return 0;
}
}

int main()
{
const char *str = "-5896123";
int res = StrToInt(str);
if (flag)
{
cout << "字符串" << str << "转化成整数:" << res << endl;
}
else
{
cout << "输入有误!" << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: