牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2014-12-05 投稿人: 浏览次数:1902

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。

解题思路:针对此字符串,从头到尾开始遍历,首先判断第一个字符,如果没有负号,继续遍历,有负号,将最终输出的整数以负数形式输出即可;其次针对后面的数字字符,将前面得到的整数乘以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;
}


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。