【发布时间】:2022-01-06 11:45:31
【问题描述】:
我做了一个函数,将字符串 t 连接到字符串 s 的末尾,在我的练习中我必须为此使用指针,所以我这样做了,但是它不工作:
#include <stdio.h>
void strcat(char *s, char *t)
{
while (*s++);
for (*s = *t; *s = *t; s++, t++);
}
int main()
{
char c[100] = "hello";
char *w = " world\n";
strcat(c, w);
printf(c);
return 0;
}
c 的输出总是返回“hello”而不是“hello world\n”
【问题讨论】:
-
printf("%s\n", c)试试这样。 -
这能回答你的问题吗? How to concat two char * in C?
-
趁此机会学习如何使用调试器在监控变量及其值的同时逐句执行代码。
-
失败
while (*s++);循环的评估仅在*s落在终结符上时才会这样做,然后您会使用后增量跳过该终结符。因此,在串联开始之前,终止符仍然存在。将其更改为while (*s) ++s;
标签: c while-loop c-strings function-definition strcat