题目要求:输入string类字符串,将其转换为int类整数。
需要注意的点是string类中的字符需要挨个处理,本质上是字符数组。
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
int myAtoi(string str) {
int res = 0; //创建一个空的整数来承接转换的结果;在循环外被初始化
for (int i = 0; i < str.length(); i++) { //从输入的字符串的第一个字符开始
switch (str[i])
{
case '0': str[i] = 0; break;
case '1': str[i] = 1; break;
case '2': str[i] = 2; break;
case '3': str[i] = 3; break;
case '4': str[i] = 4; break;
case '5': str[i] = 5; break;
case '6': str[i] = 6; break;
case '7': str[i] = 7; break;
case '8': str[i] = 8; break;
case '9': str[i] = 9; break;
default: continue;//如果直接用continue可以跳过该不是整数的字符
break;
}
res = 10 * res + str[i];
}
if (str[0] == '-') res = 0 - res;//考虑符号的问题
return res;
}
};
int main() {
Solution s;
string str;
getline(cin, str); //在<string>头文件中包含的标准函数
cout << s.myAtoi(str);
return 0;
}