在C中定义和打印字符串变量的正确格式是什么?

时间:2014-01-04 19:24:19

标签: c string variables printf

我是C的绝对初学者,我在使用其他高级语言(如Ruby和Python)方面有过一些经验,但除此之外我还是编程的初学者。我一直试图找出如何定义一个字符串变量并使用类似“printf”函数打印它,但到目前为止我没有运气,因为我的代码只是不断吐出错误消息。

根据我的理解,这样的事情应该定义一个字符串变量,然后将其打印到控制台:

char string[3];
string = "hi";
printf ("%s", string);

但这不起作用,那么这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

这不起作用,因为除非初始化它们,否则无法在C中分配数组。

所以,你可以这样做:

char string[3] = "hi";

更好(更安全)写为:

char string[] = "hi";

这让编译器担心字符数,通常更可取。

要在初始化后更改数组内容,必须使用一些可以复制字符的函数,不能通过单个赋值执行此操作:

strcpy(string, "yo");

请注意,这是危险,因为strcpy()不会知道数组的3个字符的限制。