您的位置:首页 > 其它

每日一道算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出

2014-12-05 23:54 459 查看
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。

解题思路:针对此字符串,从头到尾开始遍历,首先判断第一个字符,如果没有负号,继续遍历,有负号,将最终输出的整数以负数形式输出即可;其次针对后面的数字字符,将前面得到的整数乘以10再加上此字符对应的数字即可;碰到非法字符,转换停止;最后大数问题也是需要考虑的。代码如下:

#include <iostream>
using namespace std;

long int a_to_i(char* str){
int length = sizeof(str)/sizeof(str[0]);
bool flag = false;
if (str[0] == '-'){
flag = true;
}
long int sum = 0;
for (int i = 0; i < length; i++){
if (i == 0 && (str[0] == '-' || str[0] == '+')){
continue;
}
sum = sum * 10 + (str[i] - '0');
}
if (flag)
{
sum = -sum;
}
return sum;
}

int main(){
char num[] = "-122";
long int result = a_to_i(num);
cout << result << endl;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐