题目
实现字符串拷贝(不用 strcpy)
思路
本题自己实现字符串拷贝,不能调用 strcpy。
用两个指针或下标,把源串每个字符复制到目标串,并在末尾补上 ' '。目标缓冲区必须足够大,且源与目标重叠时行为未定义,不要重叠。
解题分析
拷贝包含结尾 \0,目标缓冲区要足够大。指针同时后移直到复制完终止符。重叠内存不能用简易 strcpy,应用 memmove。
完整程序
#include <stdio.h>
static void my_copy(char *dst, const char *src)
{
while ((*dst++ = *src++)) {
}
}
int main(void)
{
char src[500], dst[500];
if (scanf("%499s", src) != 1) {
return 1;
}
my_copy(dst, src);
printf("%s\n", dst);
return 0;
}运行示例
输入:
world输出:
world