将一个字符串逆序存放在数组中并输出逆序后的字符串内容。
时间: 2024-05-08 09:21:34 浏览: 112
下是C++代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100];
cout << "请输入一个字符串:" << endl;
cin.getline(str, 100); // 使用getline()函数读取含有空格的字符串
int len = strlen(str);
char reverse_str[len];
for (int i = 0; i < len; i++) {
reverse_str[i] = str[len - i - 1]; // 逆序存放
}
cout << "逆序后的字符串为:" << endl;
cout << reverse_str << endl;
return 0;
}
```
当用户输入一个字符串后,程序会先通过`strlen()`函数获取字符串的长度,然后创建一个与原字符串等长的字符数组`reverse_str`,并在`for`循环中将原字符串逆序存放到`reverse_str`中。最后输出`reverse_str`即可。
相关问题
编写C++程序实现将一个字符串按逆序存放,并输出原字符串和逆序后字符串(用字符数组和指针两种方法完成,字符串自己定义)。
在C++中,可以使用字符数组和指针两种方式来实现字符串逆序的操作。以下是两种方法的示例:
**1. 使用字符数组实现:**
```cpp
#include <iostream>
// 定义字符串结构体,包含一个字符数组和长度
struct String {
char chars[100];
int length;
};
// 函数用于输入字符串并逆序存储
void reverseString(char* input) {
String str;
std::cin.getline(str.chars, sizeof(str.chars), '\n');
str.length = strlen(str.chars);
// 从两端开始交换字符
for (int i = 0, j = str.length - 1; i < j; ++i, --j) {
std::swap(str.chars[i], str.chars[j]);
}
// 输出原始字符串和逆序后的字符串
std::cout << "Original string: ";
for (int i = 0; i <= str.length; ++i) {
if (str.chars[i] != '\0') {
std::cout << str.chars[i];
}
}
std::cout << "\nReversed string: ";
for (int i = 0; i <= str.length; ++i) {
if (str.chars[i] != '\0') {
std::cout << str.chars[i];
}
}
}
int main() {
reverseString(NULL); // 注意这里的NULL,因为我们需要传入一个字符数组地址
return 0;
}
```
**2. 使用指针实现:**
```cpp
#include <iostream>
#include <cstring> // 包含strlen函数
void reverseString(char* input) {
char str[] = {0}; // 存放字符串的临时字符数组
std::copy(input, input + strlen(input), str);
str[strlen(input)] = '\0'; // 添加结束符
// 逆序字符串
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end) {
std::swap(*start, *end);
start++;
end--;
}
// 输出原始字符串和逆序后的字符串
std::cout << "Original string: " << str << "\nReversed string: " << str << "\n";
}
int main() {
char input[100];
std::cout << "Enter a string: ";
std::cin.getline(input, sizeof(input), '\n');
reverseString(input);
return 0;
}
```
在这两个示例中,用户需要手动输入字符串。运行上述代码后,你会看到原始字符串和逆序后的字符串。
c语言编写一个函数 Inverse0,实现将字符数组中的字符串逆序存放的功能。用数组a存放逆序存放前的数组元素,用数组b存放逆序存放后的数组元素。
好的,以下是C语言实现的代码:
```c
void Inverse0(char* str) {
char a[1000], b[1000];
int len = strlen(str);
for (int i = 0; i < len; i++) {
a[i] = str[i];
}
for (int i = 0; i < len; i++) {
b[i] = a[len - i - 1];
}
for (int i = 0; i < len; i++) {
str[i] = b[i];
}
}
```
以上代码中,我们先将原始字符串按照顺序存储到数组a中,然后再将数组a中的元素按照相反的顺序存储到数组b中,最后再将数组b中的元素按照顺序存储回原始字符串中,即可实现字符串逆序存放的功能。
请注意,由于我们使用了数组a和数组b,因此需要定义一个足够大的数组来存储字符串,以上代码中我们定义了大小为1000的数组。如果您的字符串比较长,可能需要调整数组的大小。
阅读全文