用C语言指针实现字符串的逆转
时间: 2023-07-16 22:17:33 浏览: 116
可以使用指针来实现字符串的逆转,具体的实现方法如下:
```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` 分别指向字符串的头和尾,然后通过交换它们所指向的字符来实现字符串的逆转。其中需要注意的是,在交换字符之前,需要将指针向前或向后移动一位,以避免重复交换相同的字符。
相关问题
头歌c语言字符串逆转
在C语言中,反转字符串通常通过循环结构来实现,因为字符串本质上是一个字符数组。以下是一个简单的示例,展示了如何使用指针来完成这个任务:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int length = strlen(str); // 获取字符串长度
char temp; // 存储交换的字符
for (int i = 0; i < length / 2; i++) { // 只需要遍历一半,因为最后会回到起始位置
temp = str[i]; // 保存当前字符
str[i] = str[length - i - 1]; // 将当前位置的字符移动到末尾
str[length - i - 1] = temp; // 将末尾的字符移动到当前位置
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
在这个例子中,`reverse`函数接受一个指向字符串的指针,并通过两个指针从字符串两端向中间逐个交换字符,实现了字符串的反转。
编写一个程序,输入一个字符串,将该字符串的逆转后输出。用C语言
可以使用指针来逆转字符串,以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
char *p1 = str; // 指向字符串首地址的指针
char *p2 = str + len - 1; // 指向字符串尾地址的指针
while (p1 < p2) {
char temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
printf("逆转后的字符串:%s\n", str);
return 0;
}
```
该程序会先接收用户输入的字符串,然后使用两个指针指向该字符串的首尾位置,每次交换两个指针所指向的字符,并将指针向中间移动,直到指针相遇为止。最后输出逆转后的字符串。
阅读全文