输入一个字符串 按相反次序输出,用指针方法实现
时间: 2024-12-17 16:36:08 浏览: 6
要使用指针方法按相反次序输出一个字符串,你可以创建两个指针,一个指向字符串的起始位置(通常称为头),另一个指向字符串的结束位置(通常称为尾)。然后不断地交换这两个指针所指向的字符,直到它们相遇或交错。以下是这个过程的一个简单的Python示例:
```python
def reverse_string(s):
# 将字符串转换为字符列表以便于操作
chars = list(s)
# 初始化指针
start = 0
end = len(chars) - 1
# 只要指针未交叉,就交换字符
while start < end:
chars[start], chars[end] = chars[end], chars[start]
start += 1
end -= 1
# 转回原字符串形式并返回
return ''.join(chars)
# 测试函数
input_str = "Hello, World!"
reversed_str = reverse_string(input_str)
print(f"Original String: {input_str}\nReversed String: {reversed_str}")
相关问题
指针-输入一个字符串按相反次序输出其中所有字符?
可以使用指针在C++中实现一个简单的算法来按相反的顺序输出字符串中的字符。这里我们先创建一个字符数组来存储输入的字符串,然后使用两个指针,一个指向数组的开始(即头),另一个指向数组的结束(即尾)。每次循环,我们会交换这两个指针所指向的字符,并同时移动它们,直到两者相遇。
下面是一个基本的示例:
```cpp
#include <iostream>
using namespace std;
void reverseString(char* str) {
char* start = str; // 指向头
char* end = str + strlen(str) - 1; // 指向尾
while (start < end) {
// 交换字符
char temp = *start;
*start = *end;
*end = temp;
// 移动指针
start++;
end--;
}
}
int main() {
string input;
cout << "请输入一个字符串: ";
getline(cin, input);
char* cStr = new char[input.length() + 1]; // 字符串变字符数组
strcpy(cStr, input.c_str());
reverseString(cStr); // 反转字符串
cout << "反转后的字符串: " << cStr << endl;
delete[] cStr; // 释放内存
return 0;
}
```
输入一串字符,按相反次序输出其中的所有字符利用指针
可以使用指针来实现字符串的反转输出。具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char *p = str, *q = str + len - 1;
while (p < q) {
char temp = *p;
*p++ = *q;
*q-- = temp;
}
}
int main() {
char str[100];
printf("请输入一串字符:");
scanf("%s", str);
reverse(str);
printf("反转后的字符串为:%s\n", str);
return ;
}
```
以上代码中,reverse 函数使用了两个指针 p 和 q,分别指向字符串的首尾位置,通过不断交换两个指针所指向的字符,实现了字符串的反转。最后在主函数中调用 reverse 函数即可。
阅读全文