c语言使用指针实现字符串反转
时间: 2023-08-07 14:05:37 浏览: 100
下面是使用指针实现字符串反转的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void reverseString(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";
reverseString(str);
printf("%s\n", str); // 输出 "dlrow olleh"
return 0;
}
```
在函数`reverseString()`中,我们首先获取字符串的长度。然后,我们使用两个指针`start`和`end`来分别指向字符串的开头和结尾。接下来,我们使用一个`while`循环来交换`start`和`end`所指向的字符,直到它们相遇为止。最终,字符串就被反转了。
相关问题
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;
char temp;
while (start < end) {
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;
}
```
在这个例子中,我们定义了一个 `reverse_string` 函数,它接收一个指向字符串的指针作为参数。在函数内部,我们使用了三个指针来实现字符串反转。`start` 指针指向字符串的起始位置,`end` 指针指向字符串的末尾位置,`temp` 变量用来交换两个字符的值。
通过一个 `while` 循环,我们不断将 `start` 指针向字符串末尾移动,将 `end` 指针向字符串起始位置移动,同时交换它们指向的字符的值。当 `start` 指针大于等于 `end` 指针时,字符串反转过程结束。最后,我们将反转后的字符串输出到屏幕上。
运行程序,输出结果如下:
```
Original string: hello, world
Reversed string: dlrow ,olleh
```
可以看到,字符串已经被成功地反转了。
C语言用指针实现字符串反转
在C语言中,使用指针可以方便地实现字符串反转,因为指针可以直接操作内存地址。下面是一个简单的示例,利用两个指针,一个指向字符串的起始位置,另一个指向结束位置,然后交换它们所指向的字符,直到两个指针相遇或交错:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* str) {
if (str == NULL || *str == '\0') return; // 避免除空字符串的情况
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[] = "Hello, World!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str); // 注意:这里不会改变原字符串,只是打印结果
return 0;
}
```
在这个例子中,`reverse()` 函数接收一个字符串指针作为参数,通过指针操作实现了字符串的反转,但是注意这种方法并不会改变原始字符串,因为它是在函数内部修改了指针指向的内容。
阅读全文