📜  C函数交换字符串(1)

📅  最后修改于: 2023-12-03 15:30:14.835000             🧑  作者: Mango

C函数交换字符串

在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()函数中定义了两个字符串str1str2,并分别使用fgets()函数从终端读入两个字符串。紧接着输出交换前和交换后的字符串。

调用swap()函数,将两个字符串的地址传递给该函数。在swap()函数中,定义了一个名为temp的字符数组,用于存放中间交换的值。使用strcpy()函数将str1的值赋给temp,再将str2的值赋给str1,最后将temp的值赋给str2,完成了两个字符串的交换。

总结

C函数交换字符串是一种非常简单、方便的方法,可以在程序开发中使用。需要注意的是,在进行指针操作时,一定要小心,确保不会破坏其他内存空间。