编写一个完整的C++程序,要求将一个字符串中的字符逆序存放。如字符串为“abcde",则逆序存放后应为"edcba"。 输入格式: 在一行中输入一个长度不超过20的字符串、并以回车结束。 输出格式: 在一行中输出逆序后的字符串。
时间: 2024-03-07 17:46:58 浏览: 111
以下是实现要求的完整的 C++ 程序:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[21]; // 定义一个长度不超过20的字符数组,用于存放输入的字符串
cin >> str; // 读入字符串
int len = strlen(str); // 获取字符串长度
for (int i = len-1; i >= 0; i--) // 从最后一个字符开始循环
{
cout << str[i]; // 逆序输出字符
}
return 0;
}
```
程序首先定义了一个长度为 21 的字符数组 `str`,用于存放输入的字符串。然后使用 `cin` 读入一个字符串,并使用 `strlen` 函数获取字符串长度。接着使用 `for` 循环从最后一个字符开始循环,依次逆序输出每一个字符。最后返回 0,表示程序正常结束。
注意,为了保证程序的健壮性,还需要对输入字符串的长度进行判断,确保不超过数组的最大长度。
相关问题
C语言中将一个字符串中的字符逆序存放。如字符串为“abcde",则逆序存放后应为"edcba"
可以使用两个指针,一个指向字符串的开头,一个指向字符串的结尾,然后交换它们指向的字符,直到两个指针相遇。
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str) {
int len = strlen(str);
char* start = str;
char* end = str + len - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "abcde";
reverse_string(str);
printf("%s\n", str); // 输出 edcba
return 0;
}
```
C语言将一个字符串中的字符逆序存放。如字符串为“abcde",则逆序存放后应为"edcba"。
可以使用指针来实现字符串中字符的逆序存放。具体的实现步骤如下:
1. 定义一个指向字符串的指针变量p和一个指向字符串末尾的指针变量q;
2. 使用while循环,将指针变量p和q所指向的字符交换,并将指针p向后移动一位,指针q向前移动一位,直到p>=q;
3. 最后将字符串首尾字符交换即可。
下面是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char *p = str;
char *q = str + strlen(str) - 1;
while (p < q) {
char temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
int main() {
char str[] = "abcde";
printf("Before reverse: %s\n", str);
reverse(str);
printf("After reverse: %s\n", str);
return 0;
}
```
输出结果为:
```
Before reverse: abcde
After reverse: edcba
```
阅读全文