我正在尝试设计一个程序,在该程序中我将创建一个类似于 c 标准库中的函数的 3 个函数(strlen、strcmp、strcpy)。前两个我已经接近完成,只有最后一个是主要问题。我正在尝试创建一个与标准函数 strcpy 具有相同功能的函数。这是我到目前为止所拥有的。
void myStrncpy(char destination[], const char source[], int count) {
for (int i = 0 ; source[i] != '\0' ; i++) {
count++;
}
}
到目前为止,我已经获得了“源”的长度并将其存储在“计数”中。我需要采取的下一步是什么?如果可能的话,我宁愿使用另一个 for 循环和 if 语句。谢谢!
** **编辑**** _
这就是我现在所拥有的...
void myStrncpy(char destination[], const char source[], int count) {
for (int i = 0 ; source[i] != '\0' && destination[i] != '\0' ; i++) {
destination[i] = source[i];
count++;
}
}
输出:
str1 before: stringone
str2 before: stringtwo
str1 after : stringtwo
str2 after : string two
第二次运行(我遇到问题的地方):
str1 before: stringthree
str2 before: stringfour
str1 after: stringfoure
str2 after: stringfour
我还需要在我的代码中输入什么,以便它复制每个字母直到它用完空间,或者它复制每个字母直到它用完要复制的字母?