📅  最后修改于: 2023-12-03 15:00:13.159000             🧑  作者: Mango
在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()
函数还是更合适的选择。但是学习多种方法无疑有助于我们更加具有灵活性地编写代码。