编写一个字符串逆序存放的函数reverse(),并由主函数调用实现对字符串的逆序操作。
时间: 2023-04-27 16:02:01 浏览: 131
```python
def reverse(string):
return string[::-1]
def main():
string = "hello"
print(reverse(string))
if __name__ == '__main__':
main()
```
这是一个简单的 Python 实现,其中 reverse() 函数使用切片来实现字符串的逆序,main() 函数负责调用 reverse() 并打印结果。
相关问题
用C语言编写一个函数,完成将一个字符串中的字符逆序输出,即最后一个先输出,第1个最后输出,并编写主函数进行测试。 (1)编写逆序函数,返回逆序的字符串。 (2)编写主函数,进行字符串的输入,调用逆序函数,完成字符串的输出。
你可以按照以下步骤来实现这个功能:
1. 编写一个名为`reverse_string`的函数,该函数接受一个字符串作为参数,通过交换首尾字符的方式实现字符串逆序。函数定义如下[^1]:
```c
// 反序字符串x并返回逆序后的字符串
char* reverse_string(char *x) {
int len = strlen(x);
if (len == 0) return x; // 如果字符串为空,直接返回
char* reversed = malloc(len + 1); // 分配空间存储逆序后的字符串
if (!reversed) { // 检查内存分配是否成功
printf("Memory allocation failed.\n");
return NULL;
}
int i = 0, j = len - 1; // 定义两个指针,从两端开始交换字符
while (i < j) {
reversed[i] = x[j];
reversed[j] = x[i];
i++;
j--;
}
reversed[len] = '\0'; // 添加字符串结束符
return reversed;
}
```
2. 在主函数`main()`中,读取用户输入的字符串,调用`reverse_string`函数并输出结果:
```c
main() {
char input[50];
printf("Enter a string (up to 50 characters): ");
fgets(input, sizeof(input), stdin); // 注意这里要移除末尾的换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
char* reversed_str = reverse_string(input);
if (reversed_str != NULL) {
printf("Reversed string: %s\n", reversed_str);
free(reversed_str); // 释放内存
} else {
printf("Failed to reverse the string.\n");
}
}
```
用C语言编写一个字符串逆序的简单函数,函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。
好的,我可以为你提供一个基于指针的解法,实现字符串逆序操作。下面是代码实现:
```c
#include <stdio.h>
// 函数f对p指向的字符串进行逆序操作
void reverse(char *p) {
// 如果p为空指针,则直接返回
if (p == NULL) {
return;
}
// 计算字符串长度,用于反转操作
int len = 0;
char *q = p;
while (*q != '\0') {
len++;
q++;
}
// 反转字符串
q--;
while (p < q) {
char tmp = *p;
*p = *q;
*q = tmp;
p++;
q--;
}
}
int main() {
char str[] = "Hello, world!";
printf("Before reverse: %s\n", str);
reverse(str);
printf("After reverse: %s\n", str);
return 0;
}
```
在这个解法中,我们首先通过指针遍历字符串,计算出字符串的长度 len,然后从前往后依次交换每个字符和它对称的字符,交换完成后字符串就被逆序了。需要注意的是,我们在交换字符时需要使用一个临时变量来存储当前字符的值,否则交换操作会出现错误。
阅读全文