【发布时间】:2021-04-01 13:36:09
【问题描述】:
我正在尝试在 C 中实现 strcat(),但坚持认为输出结果是重复的 src。
这是我的代码。
void my_strcat(char des[], char src[]) {
int i = 0, j = 0;
while (des[i] != '\0')
i += 1;
while (src[j] != '\0') {
des[i + j] = src[j];
j += 1;
}
des[i + j] = '\0';
printf("%s", des);
}
int main() {
char des[1000], src[100];
for(int i = 0; i < 2; ++i) {
printf("src: ");
scanf("%s", src);
my_strcat(des, src);
}
printf("%s", des);
}
输出与我之前预期的不同。例如:
源代码:一个 来源:乙 des: aabb
【问题讨论】:
-
my_strcat不返回任何内容,但您在这里使用它的返回值:printf("%s", my_strcat(des, src))。你没有得到至少 c 编译器警告吗? -
@Jabberwocky 是我的错字!我只想使用 void 类型。
-
你必须初始化des。
des[0]='\0'; -
那么你可能想要
printf("%s", des)。 -
@Holger 我添加了,但它仍然不起作用。