完成程序,只在Program和End之间增加代码。 该程序将整数n转换逆序,再转换成字符串再输出。如输入123,则输出字符串321,输入-123,则输出字符串-321。 输入100,则输出字符串1。输入1002,则输出字符串2001。输入-102,则输出字符串-201。 输入格式: 输入一个整数n。 输出格式: 在一行中输出转换后的字符串。 输入样例: 100 输出样例: 1#include <iostream> using namespace std; int main() { int n; cin >> n; char s[20];//s用来存储转换后的字符串 /**********Program**********/ /********** End **********/ cout<<s; return 0; }
时间: 2025-04-05 22:08:32 浏览: 43
### 实现整数逆序并转换为字符串
以下是基于C++编写的解决方案,能够满足将整数逆序后转为字符串的需求。此代码可以正确处理正负号以及前导零的情况。
#### 完整代码如下:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 将整数逆序并返回其字符串表示形式
string reverseIntegerToString(int n) {
bool isNegative = false;
if (n < 0) {
isNegative = true; // 记录是否为负数
n = -n; // 转换为正值以便操作
}
string result = "";
do {
result += to_string(n % 10); // 提取最后一位数字并拼接到结果字符串中
n /= 10; // 去掉已提取的最后一位
} while (n != 0);
if (isNegative) {
result += '-'; // 如果原数为负,在末尾加上负号
}
return result;
}
int main() {
int n;
cout << "请输入一个整数:";
cin >> n;
string reversedStr = reverseIntegerToString(n);
cout << "逆序后的字符串为:" << reversedStr << endl;
return 0;
}
```
---
#### 功能解析
上述代码实现了以下几个功能点:
1. **判断正负号**
首先通过 `if` 判断输入整数是否小于零[^1]。如果是负数,则记录该状态并将数值部分转化为正数进行后续计算。
2. **逐位提取数字**
使用循环结构逐步提取每一位数字,并将其追加到字符串变量 `result` 的末尾[^3]。每次迭代都会移除当前最低有效位(即个位),直到整个数字被分解完毕。
3. **恢复负号**
若原始输入是一个负数,则在最终形成的字符串后面附加 `'-'` 符号以保持原有含义。
4. **去除多余前导零的影响**
在构建过程中自然不会引入额外的前置零项因为只有当存在有效的非零余数时才会执行添加动作。
---
#### 输出示例
假设运行程序时分别输入以下数据:
- 输入 `-12345` ,则输出应为 `"54321-"`;
- 对于普通的正整数比如 `9876`, 结果将是 `"6789"`.
注意这里为了简化展示并未严格遵循标准ASCII编码下的字面量书写习惯而是直观呈现预期效果[^4].
---
阅读全文
相关推荐














