c语言运用指针数组参数编写函数 ,实现字符串交换 void swap(char **str1, char **str2)
时间: 2024-11-27 13:17:05 浏览: 46
在C语言中,当你想要通过指针数组作为参数传递并实现字符串交换时,可以先创建一个临时字符数组来存储其中一个字符串的内容,然后分别更新两个原字符串指向的内存地址。下面是一个简单的`swap`函数示例:
```c
#include <stdio.h>
#include <string.h>
void swap(char **str1, char **str2) {
// 1. 创建一个临时数组来存储 str1 的内容
char temp[strlen(*str1) + 1]; // 假设输入的字符串没有包含空字符'\0'
// 2. 将 str1 的内容复制到 temp 中
strcpy(temp, *str1);
// 3. 更新 str1 指向新的字符串(即 str2)
*str1 = *str2;
// 4. 将 str2 的原始值赋给 str1
*str2 = temp;
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Before swap:\nstr1 = %s\nstr2 = %s\n", str1, str2);
swap(&str1, &str2); // 传入的是指针地址
printf("After swap:\nstr1 = %s\nstr2 = %s\n", str1, str2);
return 0;
}
```
在这个例子中,`swap`函数接收两个字符串的指针,实际上是它们首字符的地址。函数内部首先创建一个新的字符数组来保存第一个字符串的内容,然后交换两个指针所指向的字符串。注意,在实际应用中,应确保有足够的空间来容纳复制的字符串。
阅读全文