写一个C语言程序,输入一个字符串,输出反序后的字符串
时间: 2024-02-15 18:03:51 浏览: 29
好的,以下是一个简单的C语言程序,实现了输入一个字符串并输出反序后的字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
str[strcspn(str, "\n")] = '\0'; // 去除输入字符串中的换行符
int len = strlen(str);
for (int i = len - 1; i >= 0; i--) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
这个程序中,我们首先定义了一个字符串变量 `str`,用来存储输入的字符串。然后使用 `fgets` 函数从标准输入中读取用户输入的字符串,最后通过循环逆序输出字符串中的每一个字符。
需要注意的是,由于 `fgets` 函数会在输入字符串的末尾添加一个换行符,因此我们需要使用 `strcspn` 函数找到该换行符的位置,并将其替换成字符串的结束符号 `\0`,以避免输出时出现多余的空行。
相关问题
c语言输入一个字符串,输出反序后的字符串。
可以使用循环结构,将字符串从尾到头一个个添加到新的字符串中,即可实现反序输出。代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], rev_str[100];
int i, j, len;
// 输入字符串
printf("输入一个字符串:");
gets(str);
len = strlen(str);
j = 0;
// 将字符串倒序添加到新字符串中
for (i = len - 1; i >= 0; i--)
{
rev_str[j++] = str[i];
}
rev_str[j] = '\0'; // 字符串结尾
// 输出反序后的字符串
printf("反序后的字符串是:%s", rev_str);
return 0;
}
```
或者使用指针实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], *p, *q, temp;
// 输入字符串
printf("输入一个字符串:");
gets(str);
p = str;
q = str + strlen(str) - 1;
// 交换前后字符
while (p < q)
{
temp = *p;
*p++ = *q;
*q-- = temp;
}
// 输出反序后的字符串
printf("反序后的字符串是:%s", str);
return 0;
}
```
c语言输入一个字符串,输出反序后的字符串
### 回答1:
可以使用C语言中的字符串函数来实现字符串反转,具体步骤如下:
1. 定义一个字符数组存储输入的字符串,例如:
char str[100];
2. 使用scanf函数输入字符串,例如:
scanf("%s", str);
3. 使用strlen函数获取字符串长度,例如:
int len = strlen(str);
4. 定义一个新的字符数组存储反转后的字符串,例如:
char reverse_str[100];
5. 使用for循环将原字符串中的字符逆序存储到新的字符数组中,例如:
for (int i = ; i < len; i++) {
reverse_str[i] = str[len - i - 1];
}
6. 输出反转后的字符串,例如:
printf("%s", reverse_str);
完整代码如下:
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
int len = strlen(str);
char reverse_str[100];
for (int i = ; i < len; i++) {
reverse_str[i] = str[len - i - 1];
}
printf("%s", reverse_str);
return ;
}
### 回答2:
反转字符串是一个常见的字符串操作,在编程语言中有许多不同的方法可以实现它。在C语言中,可以使用指针和循环来实现字符串反转。
首先,输入字符串可以使用C语言中的scanf函数或fgets函数进行。这里我们以fgets函数为例,代码如下:
```
#include <stdio.h>
#define MAX_SIZE 1000
int main() {
char str[MAX_SIZE];
printf("请输入一个字符串:");
fgets(str, MAX_SIZE, stdin);
printf("您输入的字符串是:%s", str);
return 0;
}
```
上述代码通过fgets函数从标准输入(键盘输入)获取字符串,并将其存储在一个字符数组中。
接下来,我们将使用指针和循环来实现字符串反转。首先,定义一个指向字符的指针p,让它指向字符串的最后一个字符。从最后一个字符开始,将它依次添加到新字符串中,直到第一个字符。代码如下:
```
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1000
int main() {
char str[MAX_SIZE], rev[MAX_SIZE];
char *p = str + strlen(str) - 1;
printf("请输入一个字符串:");
fgets(str, MAX_SIZE, stdin);
printf("您输入的字符串是:%s", str);
int i = 0;
while (p >= str) {
rev[i++] = *p--;
}
rev[i] = '\0';
printf("反转后的字符串是:%s", rev);
return 0;
}
```
在上述代码中,我们使用了strlen函数来获取输入的字符串的长度,然后将指针p指向最后一个字符。接着,使用while循环从后向前遍历字符串中的每个字符,并将其添加到反转后的字符串中。最后,将反转后的字符串以空字符结尾,并使用printf函数将其输出。
总之,字符串反转是一个常见的操作,使用指针和循环在C语言中可以很容易地实现。再加上读入和输出字符串的代码,我们就可以完整地实现输入一个字符串并输出反序后的字符串的程序了。
### 回答3:
在C语言中,要输入一个字符串可以使用scanf()函数或gets()函数,但是gets()函数已经过时了,所以建议使用scanf()。当我们输入一个字符串后,可以使用strlen()函数获取该字符串的长度,然后使用一个循环来将字符串中的字符一个一个取出并存储到另一个数组中,最后输出反转后的字符串。
具体代码如下:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], reverse_str[100];
int len, i, j;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
j = 0;
for(i = len - 1; i >= 0; i--)
{
reverse_str[j] = str[i];
j++;
}
reverse_str[j] = '\0';
printf("反转后的字符串:%s\n", reverse_str);
return 0;
}
```
在上面的代码中,我们定义了两个字符数组,一个是输入的字符串str,另一个是反转后的字符串reverse_str。然后使用scanf()函数接收输入的字符串,并使用strlen()函数获取该字符串的长度。
接下来,我们使用一个循环从字符串的最后一个字符开始,一个一个将每个字符存储到另一个数组中,最后在新的数组末尾加上一个字符结束符'\0',表示字符串的结束。
最后,我们使用printf()函数输出反转后的字符串reverse_str。
这个程序可以读取任何字符串,不限于数字或英文字符。