C语言 写一数组 使输入一个字符串按反序存放,在主函数中输入和输出字符串
时间: 2024-03-08 08:49:05 浏览: 96
好的,下面是一个简单的C语言程序,可以实现输入一个字符串并按反序存放,然后在主函数中输出反序后的字符串。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin);
int len = strlen(str) - 1; // 减一是为了去掉字符串末尾的换行符
char rev_str[MAX_LEN];
for (int i = 0; i < len; i++) {
rev_str[i] = str[len - 1 - i];
}
rev_str[len] = '\0'; // 在反序字符串末尾添加一个空字符,以便输出
printf("反序后的字符串为:%s\n", rev_str);
return 0;
}
```
程序的运行结果如下:
```
请输入一个字符串:Hello World!
反序后的字符串为:!dlroW olleH
```
注意,这个程序对输入的字符串长度有限制,不能超过预定义的最大长度 `MAX_LEN`。如果需要处理更长的字符串,可以使用动态内存分配来实现。
相关问题
写一函数使输入的一个字符串按反序存放在主函数中输入输出反序后的字符串
以下是一个C语言函数,可以将输入的字符串按反序存放并输出反序后的字符串:
```c
#include <stdio.h>
#include <string.h>
void fanxu(char a[]) {
int i, k, q, p;
p = strlen(a);
for (i = 0, k = p - 1; i < k; i++, k--) {
q = a[i];
a[i] = a[k];
a[k] = q;
}
}
int main() {
char arr[11];
printf("请输入字符串(只记录前十个字符):");
fgets(arr, 11, stdin);
fanxu(arr);
puts(arr);
return 0;
}
```
在主函数中,我们首先定义了一个字符数组`arr`,并使用`fgets`函数从标准输入中读取用户输入的字符串。然后,我们调用`fanxu`函数,将输入的字符串按反序存放。最后,我们使用`puts`函数输出反序后的字符串。
用C语言写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
以下是用C语言写一个函数,实现输入的字符串按照反序存储的代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int i, j;
char temp;
for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse_string(str);
printf("反序后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,我们定义了一个 `reverse_string` 函数,它接受一个指向字符串的指针作为参数。然后我们使用双指针法(从字符串两端往中间遍历)来交换字符的位置,最终实现了字符串的反序存储。
在主函数中,我们使用 `scanf` 函数读取一个字符串,并将其传递给 `reverse_string` 函数进行反序存储。最后,我们使用 `printf` 函数输出反序后的结果。
注意,在使用 `scanf` 函数读取字符串时,我们需要使用 `%s` 格式化字符串,并将输入的字符串存储到一个字符数组中。在本例中,我们假设输入的字符串长度不超过100个字符。如果您需要处理更长的字符串,请相应地调整数组的大小。
阅读全文