定义两个字符指针,分别指向两个字符串。通过指针移动方式将字符串反转
时间: 2023-06-09 19:06:41 浏览: 127
Sure, 我来回答你的问题。下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello world";
char str2[] = "abcdefg";
char *p1 = str1;
char *p2 = str2;
int len1 = strlen(str1);
int len2 = strlen(str2);
// 反转字符串1
for (int i = 0; i < len1 / 2; i++) {
char temp = *(p1 + i);
*(p1 + i) = *(p1 + len1 - i - 1);
*(p1 + len1 - i - 1) = temp;
}
// 反转字符串2
for (int i = 0; i < len2 / 2; i++) {
char temp = *(p2 + i);
*(p2 + i) = *(p2 + len2 - i - 1);
*(p2 + len2 - i - 1) = temp;
}
printf("str1 reversed: %s\n", str1);
printf("str2 reversed: %s\n", str2);
return 0;
}
```
这个程序定义了两个字符指针 p1 和 p2,分别指向字符串 str1 和 str2。然后,使用了指针移动的方法来反转这两个字符串。
在反转字符串的过程中,我们使用了一个临时变量 temp 来交换字符。具体来说,我们从字符串开头和结尾分别取出一个字符,然后交换它们的位置。这个过程依次进行,直到我们到达了字符串的中间位置。
输出结果为:
```
str1 reversed: dlrow olleh
str2 reversed: gfedcba
```
希望这个程序能够回答你的问题。
阅读全文