从控制台输入一个十进制signed int类型的整数,如果输入是非法十进制整数,则控制台输出err的提示,如果输入是合法十进制的整数,则控制台输出对应的逆序字符串
时间: 2024-03-17 18:47:09 浏览: 157
好的,我可以帮你解决这个问题。以下是一个C++的示例代码,可以实现你的需求:
```
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string input;
std::cin >> input;
// 检查输入是否为合法十进制整数
bool valid = true;
for (char c : input) {
if (!isdigit(c) && c != '-') {
valid = false;
break;
}
}
if (!valid) {
std::cout << "err" << std::endl;
} else {
// 将输入转换为整数,并判断是否为负数
int num = std::stoi(input);
bool negative = (num < 0);
if (negative) {
num = -num;
}
// 将整数转换为字符串并逆序
std::string reversed = std::to_string(num);
std::reverse(reversed.begin(), reversed.end());
// 如果输入为负数,则在逆序字符串前加上负号
if (negative) {
reversed = "-" + reversed;
}
std::cout << reversed << std::endl;
}
return 0;
}
```
这个程序首先读取用户输入的字符串,然后检查字符串是否为合法的十进制整数。如果输入非法,则输出 "err",否则将输入转换为整数并判断是否为负数。如果是负数,则将其取绝对值并在逆序字符串前加上负号。最后将整数转换为字符串并逆序,输出逆序字符串即可。
希望这个程序能够满足你的需求!
阅读全文