📅  最后修改于: 2023-12-03 15:30:14.835000             🧑  作者: Mango
在C语言中,可以用指针实现两个字符串之间的交换,但这需要写出比较冗长的代码。实际上,C语言提供了一个函数,可以非常方便地实现字符串间的交换。
void swap(char *str1, char *str2);
这个函数需要传递两个指向字符串的指针作为参数。函数将交换指针所指向的字符串,因此字符串之间的值也被交换了。
#include <stdio.h>
#include <string.h>
void swap(char *str1, char *str2);
int main()
{
char str1[100], str2[100];
printf("输入第一个字符串: ");
fgets(str1, 100, stdin);
printf("输入第二个字符串: ");
fgets(str2, 100, stdin);
printf("交换前: %s %s\n", str1, str2);
swap(str1, str2);
printf("交换后: %s %s\n", str1, str2);
return 0;
}
void swap(char *str1, char *str2)
{
char temp[100];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
这段代码首先定义了一个swap()
函数,接着在main()
函数中定义了两个字符串str1
和str2
,并分别使用fgets()
函数从终端读入两个字符串。紧接着输出交换前和交换后的字符串。
调用swap()
函数,将两个字符串的地址传递给该函数。在swap()
函数中,定义了一个名为temp
的字符数组,用于存放中间交换的值。使用strcpy()
函数将str1
的值赋给temp
,再将str2
的值赋给str1
,最后将temp
的值赋给str2
,完成了两个字符串的交换。
C函数交换字符串是一种非常简单、方便的方法,可以在程序开发中使用。需要注意的是,在进行指针操作时,一定要小心,确保不会破坏其他内存空间。