如何将数组中的一个字符串与另一个字符串位置调换 以C语言
时间: 2024-09-19 21:04:31 浏览: 42
C语言用指针将字符串数组位置颠倒
在C语言中,如果你想交换两个字符串数组中的元素,可以直接使用指针来完成这个操作,因为字符串本质上就是字符数组。这里有一个简单的示例,假设我们有两个字符串`str1`和`str2`,并且它们都是数组的一部分:
```c
#include <stdio.h>
void swapStrings(char str1[], char str2[]) {
char temp[ strlen(str1)+1 ]; // 临时变量来保存其中一个字符串
// 将 str1 的内容复制到 temp
strcpy(temp, str1);
// 将 str1 的内容更新为 str2 的内容
strcpy(str1, str2);
// 将 temp 的内容更新为 str1 曾经的内容
strcpy(str2, temp);
}
int main() {
char array[] = {"Hello", "World", "Array", "Example"};
const size_t len = sizeof(array)/sizeof(array[0]);
// 假设我们要交换索引为1和3的元素
char *str1 = array + 1; // 第2个元素的地址,注意从0开始计数
char *str2 = array + 3; // 第4个元素的地址
printf("交换前:\n");
for(size_t i=0; i<len; ++i) {
printf("%s ", array[i]);
}
swapStrings(str1, str2);
printf("\n交换后:\n");
for(size_t i=0; i<len; ++i) {
printf("%s ", array[i]);
}
return 0;
}
阅读全文