每日一道算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。
解题思路:针对此字符串,从头到尾开始遍历,首先判断第一个字符,如果没有负号,继续遍历,有负号,将最终输出的整数以负数形式输出即可;其次针对后面的数字字符,将前面得到的整数乘以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; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。