您的位置:首页 > 其它

字符串转化为数字

2019-03-24 14:12 120 查看
版权声明:未经同意不得转载 https://blog.csdn.net/qq_37496376/article/details/88776328

输入一个表示整数的字符串,把该字符串转化成整数并输出。例如输入字符串 “345”,则输出整数 345。

思路:依次扫描字符串,每扫描一个字符,把之前得到的数乘以10再加上当前字符表示的数字。

注意:

  1. 正负号问题
  2. 判断指针是否为空
  3. 溢出问题
  4. 输入的字符串中可能有不是数字的字符
#include <iostream>
#include <stdlib.h>
using namespace std;

int strToNum(const char *str)
{
long long num = 0;

if (str != NULL){
const char *digit = str;
bool minus = false;//判断正负
if (*digit == '+'){
digit++;
}
else if (*digit == '-'){
minus = true;
digit++;
}
while (*digit != '\0'){
if (*digit >= '0' && *digit <= '9'){
num = num * 10 + (*digit-'0');
if (num > numeric_limits<int>::max()){//越界处理
num = 0;
break;
}
digit++;
}
else{
num = 0;
break;
}

}

if (minus){
num = 0 - num;
}

}
return num;
}

void main()
{
char *str = (char *)malloc(sizeof(str));
cin >> str;
cout << endl;
long long num = strToNum(str);
cout << "转化后的数字为:" << num << endl;
system("pause");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: