用c语言指针写出一段字符串颠倒的函数
时间: 2023-12-10 09:04:31 浏览: 28
好的,下面是一个使用指针实现字符串颠倒的函数:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *s) {
int len = strlen(s);
char *p = s, *q = s + len - 1;
while (p < q) {
char temp = *p;
*p++ = *q;
*q-- = temp;
}
}
int main() {
char s[] = "hello world";
printf("%s\n", s);
reverse_string(s);
printf("%s\n", s);
return 0;
}
```
这个函数的实现也很简单,它使用了两个指针 `p` 和 `q` 分别指向字符串的第一个字符和最后一个字符,然后通过交换指针所指向的字符来实现字符串的颠倒。具体来说,每次交换 `p` 和 `q` 所指向的字符,并将 `p` 后移、`q` 前移,直到 `p` 和 `q` 相遇为止。注意,在交换字符时,需要使用一个临时变量来保存其中一个字符的值,否则会导致数据丢失。
相关问题
c语言用指针实现字符串颠倒
以下是C语言用指针实现字符串颠倒的代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
char *start = str;
char *end = str + strlen(str) - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
运行结果为:
```
Original string: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Reversed string: ZYXWVUTSRQPONMLKJIHGFEDCBA
```
该代码中,我们定义了一个`reverse`函数,该函数接受一个指向字符串的指针作为参数。在函数内部,我们使用两个指针`start`和`end`分别指向字符串的开头和结尾,然后交换它们所指向的字符,直到`start`指针超过了`end`指针。最后,我们在`main`函数中调用`reverse`函数,并输出结果。
用C语言在数组本地逆序一个字符串
可以使用双指针来实现。具体步骤如下:
1. 定义两个指针,一个指向字符串的开头,另一个指向结尾。
2. 不断交换两个指针所指的字符,并将指针向中间移动,直到两个指针相遇。
3. 交换完成后,整个字符串就被本地逆序了。
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str) {
int len = strlen(str);
char *p1 = str, *p2 = str + len - 1;
while (p1 < p2) {
char tmp = *p1;
*p1 = *p2;
*p2 = tmp;
p1++;
p2--;
}
}
int main() {
char str[] = "hello world";
reverse_string(str);
printf("%s\n", str); // 输出: "dlrow olleh"
return 0;
}
```
注意,本地逆序只是将字符串在数组中的顺序颠倒过来,并不改变字符串在内存中的地址。因此,该函数不需要返回值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)