编写一个函数,接收一个字符串作为参数,返回这个字符串的逆序字符串。不允许使用内置的反转函数。
时间: 2025-01-01 09:41:49 浏览: 12
编写一个函数来逆序一个字符串,不使用内置的反转函数,可以采用双指针法,从两端向中间遍历并逐个交换字符。以下是Python的示例代码:
```python
def reverse_string(s):
# 初始化两个指针,一个指向字符串的开始,另一个指向结束
left, right = 0, len(s) - 1
# 当左指针小于右指针时,继续交换字符
while left < right:
# 交换左右指针指向的字符
temp = s[left]
s[left] = s[right]
s[right] = temp
# 移动指针
left += 1
right -= 1
return s
# 测试函数
input_str = "Hello, World!"
reversed_str = reverse_string(input_str)
print(f"Original string: {input_str}\nReversed string: {reversed_str}")
```
当你运行这个函数,它会输出输入字符串的逆序版本。
相关问题
C语言写个编写一个函数,接收一个字符串作为参数,将字符串中的单词进行逆序,并返回逆序后的字符串。
在C语言中,你可以通过以下几个步骤编写一个函数来实现这个功能:
首先,我们需要创建一个名为`reverse_words`的函数,它接受一个指向字符数组的指针作为输入,并假设字符串是以空字符'\0'结尾的。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void reverse_words(char* str);
// 函数实现
void reverse_words(char* str) {
int start = 0; // 用于记录单词开始的位置
int end = 0; // 当前单词结束位置
while (str[end] != '\0') { // 遍历字符串直到找到最后一个字符
if (str[end] == ' ') { // 如果遇到空格,反转从start到end的单词
char temp;
for (int i = start; i < end; ++i, --end) {
temp = str[i];
str[i] = str[end];
str[end] = temp;
}
start = end + 1; // 更新起始位置,跳过空格
} else {
end++; // 如果不是空格,继续检查下一个字符
}
}
// 检查最后一个单词是否需要反转
if (start < end) {
char temp;
for (int i = start; i < end; ++i, --end) {
temp = str[i];
str[i] = str[end];
str[end] = temp;
}
}
}
// 测试函数
int main() {
char str[] = "Hello World This is a test";
printf("Original string: %s\n", str);
reverse_words(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
当你运行这个程序时,会看到原始字符串"Hello World This is a test"中的每个单词都倒序了。
编写一个函数,接受一个字符串作为参数,并返回一个新的字符串,新字符串是原宇符串的逆序
以下是 Python 代码实现:
```python
def reverse_string(s):
return s[::-1]
```
使用切片 `[::-1]` 可以将字符串反转。例如:
```python
s = "Hello, World!"
print(reverse_string(s)) # 输出: "!dlroW ,olleH"
```
阅读全文