首页 > 解决方案 > 在 strcpy 函数中使用指针作为参数。试图从书中理解代码

问题描述

从我的书中:

void strcpy (char *s, char *t)
{
int i=0;
while ((s[i] = t[i]) != ’\0’)
++i;
}

我试图从我的教科书中理解这段代码。它们没有提供主要功能,所以我试图围绕如何在调用函数中使用参数。据我了解,字符串 t[ ] 的字符的“i-number”被复制到字符串 s[] 中,直到从 \0 转义序列中不再有要读取的字符。我真的不明白如何在函数之外定义参数。任何帮助是极大的赞赏。谢谢你。

标签: carrayspointersstrcpy

解决方案


这里要记住两件事:

  • C 中的字符串是chars的数组
  • 数组作为指针传递给函数

所以你会这样称呼它:

char destination[16];
char source[] = "Hello world!";

strcpy(destination, source);
printf("%s", destination);

i只是一个内部变量,它在strcpy函数之外没有任何意义(它不是参数或任何东西)。此函数将整个字符串复制ts,并在它看到一个\0字符时停止(根据 C 约定,这标志着字符串的结尾)。

编辑:另外,strcpy它是一个标准库函数,所以如果你尝试重新定义它,可能会发生奇怪的事情。给你的副本一个新名字,一切都会好起来的。


推荐阅读