编写一个完整的C++程序,要求把一个整数转化成字符串,并倒序保存在字符数组中。例如,原来的整数是1234,那么应该转化成字符串“4321”。 输入格式: 直接输入一个正整数。 输出格式: 直接输出一个字符串,没有任何附加字符
时间: 2024-03-03 07:47:00 浏览: 72
好的,以下是代码实现:
```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()` 函数实现。
然后,我们确定字符串的长度,并定义一个字符数组来保存倒序后的字符串。
接下来,我们使用一个循环将原字符串中的每个字符倒序保存到字符数组中。
最后,我们在字符数组的末尾加上一个空字符来表示字符串的结束,并将其输出。
注意,在字符串末尾一定要加上一个空字符,否则输出的字符串可能会出现奇怪的问题。
希望这个程序能够帮助到你!
相关问题
请补充函数fun,该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。 例如,当n=13572468时,str="86427531"。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序:*/ #include <stdlib.h> #include <stdio.h> #define N 80 char str[N]; void fun(long int n) { int i=0; /**********FILL**********/ while( [1] ) { /**********FILL**********/ str[i]= [2] ; n/=10; i++; } /**********FILL**********/ [3] ; } int main() { long int n=13572468; printf("*** the origial data ***\n"); printf("n=%ld",n); fun(n); printf("\n%s",str); return 0; }
#include <stdlib.h>
#include <stdio.h>
#define N 80
char str[N];
void fun(long int n) {
int i=0;
while(n!=0) { // [1] 当n不等于0时循环
str[i]=n%10+'0'; // [2] 将n的个位转换为字符并存入str中
n/=10;
i++;
}
str[i]='\0'; // [3] 在str末尾添加结束符'\0'
}
int main() {
long int n=13572468;
printf("*** the origial data ***\n");
printf("n=%ld",n);
fun(n);
printf("\n%s",str);
return 0;
}
C语言中编写一个函数DecToBin(intn,charb[]),该函数用于将十进制整数n转换 为二进制,转换结果以字符串形式存储于字符数组b中。在main函数中,输入一个整数n, 调用DecToBin函数,将十进制整数n转换并输出相应的二进制数。
好的,我来解答这个问题。
首先,我们需要了解将十进制整数转换为二进制的方法。一种常用的方法是“除2取余法”。具体步骤如下:
1. 将十进制整数不断除以2,直到商为0为止,每次记录下余数。
2. 将记录的余数倒序排列,即为该十进制整数的二进制表示。
根据这个方法,我们可以编写一个函数 `DecToBin` 来实现将十进制整数转换为二进制字符串的功能。
```c
void DecToBin(int n, char b[]) {
int i = 0;
while (n > 0) {
b[i] = n % 2 + '0';
n /= 2;
i++;
}
b[i] = '\0';
// 将字符串倒序排列
int len = strlen(b);
for (int j = 0; j < len / 2; j++) {
char temp = b[j];
b[j] = b[len - j - 1];
b[len - j - 1] = temp;
}
}
```
这个函数接受两个参数,一个是十进制整数 `n`,一个是字符数组 `b`,用于存储二进制字符串。在函数中,我们使用了一个 `while` 循环,将 `n` 不断除以2并记录余数,直到商为0为止。然后将记录的余数倒序排列,即可得到二进制字符串。最后,我们在字符串末尾加上一个空字符,表示字符串的结束。
在 `main` 函数中,我们可以输入一个整数 `n`,调用 `DecToBin` 函数,将十进制整数 `n` 转换为二进制字符串,并输出。
```c
int main() {
int n;
char b[100];
printf("请输入一个整数:");
scanf("%d", &n);
DecToBin(n, b);
printf("二进制数为:%s\n", b);
return 0;
}
```
这样,我们就完成了将十进制整数转换为二进制字符串的功能。完整的代码如下:
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)