c语言编程:从键盘输入一行可带空格的字符串,按逆序输出该字符串
时间: 2024-11-30 08:14:11 浏览: 16
字符串逆序-使用C语言实现的字符串按单词逆序.zip
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,使用`scanf`函数从键盘获取用户输入的一行字符串,包括空格。这里需要指定读取整个字符串,直到遇到换行符为止,可以使用`%s`作为格式说明符。
```c
char input[100]; // 假设我们最多接受99个字符,包括空格
scanf("%s", input);
```
2. 然后,创建一个新的字符串变量来存储逆序后的结果。由于C语言本身并不支持直接逆序数组,我们需要借助临时变量来交换字符位置。
```c
int length = strlen(input); // 获取字符串长度
char reversed[length + 1]; // 为了包含结束符'\0'
```
3. 使用两个指针,一个指向原字符串的开始,另一个指向新字符串的开始,然后逐个交换字符直到相遇。
```c
for (int i = 0; i < length / 2; ++i) {
char temp = input[i];
input[i] = input[length - i - 1]; // 交换字符
input[length - i - 1] = temp;
}
reversed[length] = '\0'; // 添加结束符
```
4. 最后,使用`printf`函数输出逆序后的字符串。
```c
printf("逆序后的字符串: %s\n", reversed);
```
完整代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[100];
scanf("%s", input);
int length = strlen(input);
char reversed[length + 1];
for (int i = 0; i < length / 2; ++i) {
char temp = input[i];
input[i] = input[length - i - 1];
input[length - i - 1] = temp;
}
reversed[length] = '\0';
printf("逆序后的字符串: %s\n", reversed);
return 0;
}
```
阅读全文