c语言有交换字符串的函数吗
时间: 2024-09-08 22:03:52 浏览: 79
在 C 语言中并没有内置的函数可以直接交换两个字符串的内容。不过,可以使用字符数组或者字符串指针,配合临时变量或者无参的函数来实现字符串的交换。下面是一个简单的例子,使用 char* 指针和一个临时变量:
```c
#include <stdio.h>
#include <string.h> // 使用这个头文件里的 strcpy 和 strlen 函数
void swap(char *str1, char *str2) {
if (str1 && str2) { // 验证输入是否为空
int len1 = strlen(str1);
int len2 = strlen(str2);
char temp[len1 + 1]; // 临时存储较大的字符串长度的空间
// 将第一个字符串复制到临时变量
strncpy(temp, str1, len1);
temp[len1] = '\0'; // 添加 null 结束符
// 将第二个字符串覆盖到第一个的位置
strcpy(str1, str2);
// 将临时变量的内容复制回第二个位置
strcpy(str2, temp);
}
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Before swap: str1 = %s, str2 = %s\n", str1, str2);
swap(str1, str2);
printf("After swap: str1 = %s, str2 = %s\n", str1, str2);
return 0;
}
```
阅读全文