📜  C程序无需使用strcpy()函数即可复制字符串(1)

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

C程序无需使用strcpy()函数即可复制字符串

在C语言中,复制一个字符串通常需要使用strcpy()函数。不过,其实还有其他方法可以实现字符串的复制,而且在一些特定情况下,使用这些方法会更高效。

方法一:使用指针

使用指针可以更加简单地复制一个字符串。我们可以先声明两个字符指针变量,然后将一个指针变量指向待复制的字符串的起始地址,再让另一个指针变量指向另一个位置。最后,使用循环语句依次赋值即可。

#include <stdio.h>

int main()
{
    char str1[] = "hello, world!";
    char str2[50];
    char *p1 = str1;
    char *p2 = str2;

    while (*p1 != '\0')
    {
        *p2 = *p1;
        ++p1;
        ++p2;
    }
    *p2 = '\0';

    printf("str1: %s\n", str1);
    printf("str2: %s\n", str2);

    return 0;
}

运行结果:

str1: hello, world!
str2: hello, world!
方法二:使用数组下标

使用数组下标也可以很容易地复制一个字符串。只需要使用一个循环语句,依次将一个字符数组的每个元素赋给另一个字符数组即可。

#include <stdio.h>

int main()
{
    char str1[] = "hello, world!";
    char str2[50];

    for (int i = 0; str1[i] != '\0'; ++i)
    {
        str2[i] = str1[i];
    }
    str2[i] = '\0';

    printf("str1: %s\n", str1);
    printf("str2: %s\n", str2);

    return 0;
}

运行结果:

str1: hello, world!
str2: hello, world!

这两种方法都只是简单的演示,实际上,复制字符串并不总是这么简单的。在一些特定情况下,使用strcpy()函数还是更合适的选择。但是学习多种方法无疑有助于我们更加具有灵活性地编写代码。