c - 在 strcpy 函数中使用指针作为参数。试图从书中理解代码
问题描述
从我的书中:
void strcpy (char *s, char *t)
{
int i=0;
while ((s[i] = t[i]) != ’\0’)
++i;
}
我试图从我的教科书中理解这段代码。它们没有提供主要功能,所以我试图围绕如何在调用函数中使用参数。据我了解,字符串 t[ ] 的字符的“i-number”被复制到字符串 s[] 中,直到从 \0 转义序列中不再有要读取的字符。我真的不明白如何在函数之外定义参数。任何帮助是极大的赞赏。谢谢你。
解决方案
这里要记住两件事:
- C 中的字符串是
char
s的数组 - 数组作为指针传递给函数
所以你会这样称呼它:
char destination[16];
char source[] = "Hello world!";
strcpy(destination, source);
printf("%s", destination);
i
只是一个内部变量,它在strcpy
函数之外没有任何意义(它不是参数或任何东西)。此函数将整个字符串复制t
到s
,并在它看到一个\0
字符时停止(根据 C 约定,这标志着字符串的结尾)。
编辑:另外,strcpy
它是一个标准库函数,所以如果你尝试重新定义它,可能会发生奇怪的事情。给你的副本一个新名字,一切都会好起来的。