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

来源:互联网 发布:手机考试作弊软件 编辑:程序博客网 时间:2024/05/21 01:47

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

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


0 0
原创粉丝点击