C语言字符串指针交换
时间: 2024-11-14 13:12:51 浏览: 21
在C语言中,交换两个字符串指针通常不需要直接修改指针本身,因为它们只是内存地址,指向字符数组。相反,你可以通过操作指向的数据来达到交换的目的。下面是一个简单的示例,假设我们有两个字符串指针`str1`和`str2`:
```c
#include <stdio.h>
#include <string.h>
void swapStrings(char** str1, char** str2) {
if (*str1 && *str2) { // 检查指针是否为空
char temp[ strlen(*str1) + 1 ]; // 存储较大的字符串
strcpy(temp, *str1); // 将第一个字符串复制到临时变量
strcpy(*str1, *str2); // 把第二个字符串赋给第一个
strcpy(*str2, temp); // 把临时变量的值赋给第二个
}
}
int main() {
char* str1 = "Hello";
char* str2 = "World";
printf("Before swap: str1 = %s, str2 = %s\n", str1, str2);
swapStrings(&str1, &str2);
printf("After swap: str1 = %s, str2 = %s\n", str1, str2);
return 0;
}
```
在这个例子中,`swapStrings`函数接收两个指向字符串的指针,并使用`strcpy`函数实现了字符串的交换。
阅读全文