请编写一个 C 函数,该函数将一个字符串逆序
时间: 2023-09-23 14:06:42 浏览: 48
### 回答1:
回答:可以使用以下代码实现字符串逆序:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: hello world
Reversed string: dlrow olleh
```
### 回答2:
编写一个C函数,实现字符串的逆序。
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str)
{
int left = 0;
int right = strlen(str) - 1;
while (left < right) {
// 交换左右指针所指向的字符
char temp = str[left];
str[left] = str[right];
str[right] = temp;
// 左指针向右移动一位
left++;
// 右指针向左移动一位
right--;
}
}
int main()
{
char str[100];
printf("请输入要逆序的字符串:");
scanf("%s", str);
reverseString(str);
printf("逆序后的字符串为:%s\n", str);
return 0;
}
```
这个程序中定义了一个名为`reverseString`的函数,接受一个指向字符数组的指针作为参数。通过使用双指针法,将左指针从字符串的开头向右移动,将右指针从字符串的末尾向左移动,不断交换左右指针所指向的字符,直到左指针超过右指针为止。在主函数中,首先通过`scanf`函数获取输入的字符串,然后调用`reverseString`函数实现字符串的逆序,并最后将逆序后的字符串输出到屏幕上。
### 回答3:
编写一个 C 函数,实现字符串逆序的功能。可以使用两个指针来遍历字符串,并交换它们所指向的字符,直到指针相遇为止。
```c
#include <stdio.h>
void reverseString(char* str) {
// 获取字符串长度
int len = 0;
while (str[len] != '\0') {
len++;
}
// 定义指向字符串首尾的两个指针
char* left = str;
char* right = str + len - 1;
// 交换指针所指向的字符,直到相遇
while (left < right) {
// 交换字符
char temp = *left;
*left = *right;
*right = temp;
// 移动指针
left++;
right--;
}
}
int main() {
char str[] = "Hello, World!";
printf("原始字符串:%s\n", str);
// 调用函数进行字符串逆序
reverseString(str);
printf("逆序后的字符串:%s\n", str);
return 0;
}
```
编写以上代码,并运行后,输出结果为:
原始字符串:Hello, World!
逆序后的字符串:!dlroW ,olleH
以上代码通过遍历字符串获取其长度,并定义两个指针指向字符串首尾,不断交换指针所指向的字符,并移动指针,直到两个指针相遇。最终实现了字符串的逆序。