【发布时间】:2013-01-20 11:39:15
【问题描述】:
我最近开始使用 C 语言进行编程,来自 Java 和 Python。现在,在我的书中,我注意到要制作一个“Hello World”程序,语法是这样的:
char message[10]
strcpy(message, "Hello, world!")
printf("%s\n", message);
现在,这个例子使用了一个 char 数组,我想知道 - 字符串发生了什么?为什么我不能简单地使用其中之一?也许有其他方法可以做到这一点?
【问题讨论】:
-
C 没有字符串。
-
你需要char信息[14];
-
顺便说一下,你的 strcpy 会溢出你的 char 数组。您至少需要一个长度为 14 的 char 数组(13 个字符 + nul 终止符)
-
@Grhm
strncmp是错误的函数有两个原因,首先它是一个cmp函数而不是cpy函数,其次你应该使用strlcpy来确保 nul 终止字节被使用。strncpy可能会给你一个未终止的字符串。 -
@wich:我的意思是
strncpy- 但不知道strlcpy看起来确实是一个更好的选择。谢谢,我今天学到了一些东西..
标签: c string char printf strcpy