编写一个完整的C++程序,要求把一个整数转化成字符串,并倒序保存在字符数组中。例如,原来的整数是1234,那么应该转化成字符串“4321”。 输入格式: 直接输入一个正整数。 输出格式: 直接输出一个字符串,没有任何附加字符
时间: 2024-03-03 12:47:00 浏览: 17
好的,以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string s = to_string(n);
int len = s.length();
char ans[len + 1];
for (int i = 0; i < len; i++) {
ans[i] = s[len - i - 1];
}
ans[len] = '\0';
cout << ans << endl;
return 0;
}
```
解释一下代码:
首先,我们输入一个正整数并将其转化为字符串,这可以使用 `to_string()` 函数实现。
然后,我们确定字符串的长度,并定义一个字符数组来保存倒序后的字符串。
接下来,我们使用一个循环将原字符串中的每个字符倒序保存到字符数组中。
最后,我们在字符数组的末尾加上一个空字符来表示字符串的结束,并将其输出。
注意,在字符串末尾一定要加上一个空字符,否则输出的字符串可能会出现奇怪的问题。
希望这个程序能够帮助到你!
相关问题
c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求用数组实现
实现一个将十进制数转换成十六进制数的函数,可以参考如下的C++代码:
```c++
#include <iostream>
using namespace std;
void dec2hex(int num, char hex[]) {
int i = 0;
while (num > 0) {
int remainder = num % 16;
if (remainder < 10) {
hex[i++] = remainder + 48;
} else {
hex[i++] = remainder + 55;
}
num /= 16;
}
hex[i] = '\0';
// Reverse the string
int j = 0, len = i;
char temp;
while (j < len / 2) {
temp = hex[j];
hex[j] = hex[len - j - 1];
hex[len - j - 1] = temp;
j++;
}
}
int main() {
int num = 123456;
char hex[20];
dec2hex(num, hex);
cout << "The hexadecimal representation of " << num << " is: " << hex << endl;
return 0;
}
```
解释一下上面的代码:
在 `dec2hex` 函数中,我们使用一个 `while` 循环,将输入的十进制数转换成十六进制数。为了实现这个目标,我们需要在每次循环中计算余数并将其转换成相应的十六进制字符。如果余数小于 10,则使用 ASCII 码中的数字 0 到 9 来表示;否则,我们使用字母 A 到 F 来表示。
在转换完成后,我们需要将结果字符串翻转。这是因为我们是从低位到高位向字符串中添加字符的,因此最终的结果是倒序的。
在主函数中,我们定义了一个整数 `num`,并调用 `dec2hex` 函数来将其转换成十六进制数,并将结果存储在 `hex` 数组中。最后,我们输出转换后的十六进制数。
C语言编写程序,将十进制正整数转成十六进制字符串输出。
以下是一个示例程序:
```c
#include <stdio.h>
void decimal_to_hex(int num) {
char hex[16];
int i = 0;
while (num != 0) {
int remainder = num % 16;
if (remainder < 10) {
hex[i++] = remainder + '0';
} else {
hex[i++] = remainder - 10 + 'A';
}
num /= 16;
}
printf("0x");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
printf("\n");
}
int main() {
int num = 123456;
decimal_to_hex(num);
return 0;
}
```
该程序定义了一个名为 `decimal_to_hex` 的函数,该函数接收一个十进制正整数并将其转换为十六进制字符串。在函数中,我们使用了一个字符数组 `hex` 来保存十六进制字符串,同时使用了一个循环来进行十进制到十六进制的转换,最后再将结果倒序输出即可。
在 `main` 函数中,我们调用了 `decimal_to_hex` 函数并将一个整数作为参数传递给它,然后输出转换后的十六进制字符串。