C语言字符串交换函数134


在C语言中,字符串是字符数组,广泛用于存储和处理文本数据。有时,我们需要交换两个字符串的内容,这可以通过使用字符串交换函数来实现。

strlen() 函数

在交换字符串之前,我们需要确定字符串的长度。strlen() 函数返回字符串的长度,包括结尾的空字符 '\0'。```c
int length = strlen(str1);
```

malloc() 函数

接下来,我们需要为交换后的字符串分配内存。malloc() 函数分配指定大小的内存块并返回指向该块的指针。我们必须分配足够的空间来容纳两个字符串的总长度。```c
char *newStr = (char *)malloc((length1 + length2 + 1) * sizeof(char));
```

strcpy() 函数

使用 strcpy() 函数将第一个字符串复制到新分配的内存中。此函数将第一个字符串的字符复制到第二个字符串中,直到遇到结尾的空字符 '\0'。```c
strcpy(newStr, str1);
```

strcat() 函数

接下来,使用 strcat() 函数将第二个字符串连接到新字符串的末尾。此函数将第二个字符串的字符附加到第一个字符串的末尾。```c
strcat(newStr, str2);
```

交换字符串

现在,newStr 变量包含交换后的字符串。我们可以使用临时变量来交换 str1 和 str2 指针,指向交换后的字符串。```c
char *temp = str1;
str1 = str2;
str2 = temp;
```

示例

以下代码示例演示了如何在 C语言中交换两个字符串:```c
#include
#include
#include
int main() {
// 声明两个字符串
char str1[50] = "Hello";
char str2[50] = "World";
// 交换字符串
char *newStr = (char *)malloc((strlen(str1) + strlen(str2) + 1) * sizeof(char));
strcpy(newStr, str1);
strcat(newStr, str2);
char *temp = str1;
str1 = str2;
str2 = temp;
// 打印交换后的字符串
printf("str1: %s", str1);
printf("str2: %s", str2);
return 0;
}
```

输出:```
str1: World
str2: Hello
```

2024-12-19


上一篇:C 语言 `printf` 函数:输出 `a` 控制符

下一篇:C 语言库函数手册下载与详解