字符串逆序输出c++
时间: 2023-11-30 10:37:51 浏览: 213
可以使用一个循环将字符串倒序输出,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
for (int i = len - 1; i >= 0; i--) {
printf("%c", str[i]);
}
return 0;
}
```
输入示例:
```
请输入一个字符串:hello world
```
输出示例:
```
dlrow olleh
```
相关问题
用栈将字符串逆序输出c++
可以通过栈的先进后出的特性,将字符串逆序输出。具体实现步骤如下:
1. 遍历字符串,将每个字符依次入栈;
2. 依次出栈每个字符,即可实现字符串逆序输出。
以下是 C++ 代码示例:
```cpp
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
string str;
stack<char> stk;
cout << "请输入字符串:";
getline(cin, str); // 获取包含空格的字符串
// 将字符串中的每个字符入栈
for (int i = 0; i < str.length(); i++) {
stk.push(str[i]);
}
// 依次出栈每个字符,即可实现字符串逆序输出
cout << "逆序输出的字符串为:";
while (!stk.empty()) {
cout << stk.top();
stk.pop();
}
cout << endl;
return 0;
}
```
输入示例:
```
请输入字符串:hello world
```
输出示例:
```
逆序输出的字符串为:dlrow olleh
```
7-3 将字符串逆序输出c++
### C++ 实现字符串逆序输出
#### 方法一:使用循环结构
一种简单的方法是采用双指针技术来交换字符位置,从而达到反转的效果。下面是一个完整的例子:
```cpp
#include <iostream>
using namespace std;
void reverseString(char* str) {
char* end = str;
// 找到字符串末尾
while (*end) ++end;
--end; // 移动到最后一个有效字符的位置
char tmp;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
int main() {
char arr[100];
cout << "请输入一个字符串:" << endl;
cin >> arr;
reverseString(arr);
cout << "反转后的字符串为:" << arr << endl;
return 0;
}
```
此段代码实现了基本功能并能在控制台环境中正常工作[^3]。
#### 方法二:递归方式实现
另一种思路是借助递归来完成这一操作,在每次递归调用前先处理后续部分直到遇到终止条件再逐层返回处理当前层次的数据。这里给出具体的实现方案:
```cpp
#include <iostream>
using namespace std;
void inverse(char A[], int& index) {
char ch;
cin.get(ch); // 使用cin.get读取单个字符包括空白符
if (ch != '\n') { // 当不是换行符时继续深入递归
inverse(A, index);
A[index++] = ch;
} else {
A[index] = '\0';
}
}
int main() {
char array[100];
int idx = 0;
cout << "请输入一个字符串(按回车键结束输入):" << endl;
inverse(array, idx);
cout << "反转后的字符串为:";
for(int i=strlen(array)-1;i>=0;--i){
cout<<array[i];
}
return 0;
}
```
上述代码展示了如何通过递归的方式收集用户输入并将结果存入数组中,之后从最后一个有效字符向前遍历打印出来以形成反向效果[^2]。
阅读全文
相关推荐











