c语言编程,输入一个字符串存放到一维字符数组中,再将其中各字符逆序存放并输出。
时间: 2023-12-18 20:02:43 浏览: 160
以下是一个简单的程序,可以实现该功能:
```c
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
for(int i = len-1; i>=0; i--)
{
printf("%c", str[i]);
}
return 0;
}
```
程序中先定义一个字符数组,用来存储输入的字符串。然后使用`scanf`函数,将输入的字符串存入该数组中。接着使用`strlen`函数,获取该字符串的长度。最后使用一个`for`循环,从字符串的末尾开始,逐个输出每个字符即可。
需要注意的是,这里使用了`scanf`函数,只能读取到空格之前的字符串。如果需要读取带有空格的字符串,可以使用`fgets`函数。另外,因为`scanf`函数存在缓冲区问题,建议在读取完字符串后,清空缓冲区。
相关问题
输入一个字符串存放到一维字符数组中再加其中各自和逆序存放并输入。C语言
好的,下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN], reverse_str[MAX_LEN];
int len, i, sum = 0;
printf("请输入一个字符串:");
gets(str);
// 计算字符串长度
len = strlen(str);
// 将字符串逆序存放到reverse_str数组中
for (i = 0; i < len; i++) {
reverse_str[len - i - 1] = str[i];
}
// 计算字符串各字符的ASCII码值之和
for (i = 0; i < len; i++) {
sum += str[i];
}
// 将reverse_str和sum输出
printf("字符串逆序存放后为:%s\n", reverse_str);
printf("字符串各字符的ASCII码值之和为:%d\n", sum);
return 0;
}
```
说明:
- 该程序中使用了C语言中的字符串函数`strlen`和`gets`,分别用于计算字符串长度和读取字符串输入;
- 字符串的逆序存放使用了一个循环,通过计算逆序后的索引来实现;
- 字符串各字符的ASCII码值之和使用了一个循环,通过累加每个字符的ASCII码值来实现。
用C语言输入一个正整数,分离出各位数字,并保存在一维数组中,逆序输出数组中所有数字
在C语言中,你可以通过以下步骤来输入一个正整数,将其分解成各个位数并存储在一个一维数组中,最后逆序输出这些数字:
1. 首先,创建一个足够大的一维数组来存放每一位数字,因为整数的位数可能是任意的,所以可以预先设定一个足够大的容量,如100,然后动态分配内存。
```c
int num;
int digits[100];
int digit_count = 0;
```
2. 输入正整数,可以用`scanf`函数获取用户输入:
```c
scanf("%d", &num);
```
3. 接下来,将输入的整数转换成字符串,方便后续处理:
```c
char str[100];
itoa(num, str, 10); // 使用itoa函数,注意需要包含stdlib.h库
```
4. 然后遍历字符串,提取每一位数字并存入数组:
```c
for (int i = strlen(str) - 1; i >= 0; i--) {
digits[digit_count++] = str[i] - '0'; // 注意减去字符'0'得到数字
}
```
5. 最后,逆序输出数组中的数字:
```c
for (int i = digit_count - 1; i >= 0; i--) {
printf("%d ", digits[i]);
}
printf("\n");
```
阅读全文
相关推荐















