用指针实现字符串的逆转
时间: 2024-03-06 11:52:20 浏览: 16
可以使用两个指针,一个指向字符串的开头,一个指向字符串的结尾,然后不断交换两个指针所指向的字符,直到两个指针相遇。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
char *start = str;
char *end = str + len - 1;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
}
int main() {
char str[] = "hello world";
printf("before reverse: %s\n", str);
reverse_string(str);
printf("after reverse: %s\n", str);
return 0;
}
```
输出结果为:
```
before reverse: hello world
after reverse: dlrow olleh
```
相关问题
用指针变量实现字符串逆转
可以使用指针变量实现字符串逆转的方法有很多种,其中一种比较常见的方法如下所示:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str)
{
int len = strlen(str);
char* start = str;
char* end = str + len - 1;
char tmp;
while(start < end)
{
tmp = *start;
*start = *end;
*end = tmp;
start++;
end--;
}
}
int main()
{
char str[] = "hello, world!";
printf("Before reverse: %s\n", str);
reverse_string(str);
printf("After reverse: %s\n", str);
return 0;
}
```
在上述代码中,我们定义了一个 `reverse_string` 函数,该函数的参数为一个字符串的指针变量。函数中首先计算出字符串的长度,然后定义两个指针变量 `start` 和 `end`,分别指向字符串的起始位置和结尾位置。接着,我们使用一个循环来交换 `start` 和 `end` 指针所指向的字符,直到 `start` 指针超过 `end` 指针。最后,我们在主函数中调用 `reverse_string` 函数,并输出逆转后的字符串。
用C语言指针实现字符串的逆转
可以使用指针来实现字符串的逆转,具体的实现方法如下:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
char *start = str;
char *end = str + len - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "Hello World";
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
这里使用了两个指针 `start` 和 `end` 分别指向字符串的头和尾,然后通过交换它们所指向的字符来实现字符串的逆转。其中需要注意的是,在交换字符之前,需要将指针向前或向后移动一位,以避免重复交换相同的字符。