在C语言中,如果你想要交换两个字符数组(字符串),你可以通过一个临时变量来实现。以下是一个简单的函数,用于交换两个字符数组`string1`和`string2`的内容,假设它们的长度都是`len`:
```c
include
void swapString(char *string1, char *string2, int len) {
if (string1 == NULL || string2 == NULL) {
return;
}
for (int i = 0; i < len; ++i) {
char tempChar = string1[i];
string1[i] = string2[i];
string2[i] = tempChar;
}
}
int main() {
char string1[] = "Hello";
char string2[] = "World";
int len = sizeof(string1) / sizeof(string1); // 注意:这里计算的是字符数组长度,不包括结束符'\0'
printf("Before swap: string1 = %s, string2 = %s\n", string1, string2);
swapString(string1, string2, len);
printf("After swap: string1 = %s, string2 = %s\n", string1, string2);
return 0;
}
```
在这个例子中,`swapString`函数接受两个字符指针`string1`和`string2`以及它们的长度`len`。函数内部,我们使用一个循环来遍历数组,并在每次迭代中交换两个数组中对应位置的字符。
请注意,这个函数会直接修改传入的字符数组。如果你不希望修改原始数组,你应该先创建它们的副本,然后在副本上进行交换。
另外,如果你需要交换的是字符串的内容(即字符数组加上结束符'\0'),你需要确保在交换后,两个字符串的结束符都正确放置。在上面的例子中,我们假设`len`已经包括了结束符,因此没有额外处理结束符。如果`len`没有包括结束符,你需要在交换后手动添加结束符。