我是C的绝对初学者,我在使用其他高级语言(如Ruby和Python)方面有过一些经验,但除此之外我还是编程的初学者。我一直试图找出如何定义一个字符串变量并使用类似“printf”函数打印它,但到目前为止我没有运气,因为我的代码只是不断吐出错误消息。
根据我的理解,这样的事情应该定义一个字符串变量,然后将其打印到控制台:
char string[3];
string = "hi";
printf ("%s", string);
但这不起作用,那么这样做的正确方法是什么?
答案 0 :(得分:4)
这不起作用,因为除非初始化它们,否则无法在C中分配数组。
所以,你可以这样做:
char string[3] = "hi";
更好(更安全)写为:
char string[] = "hi";
这让编译器担心字符数,通常更可取。
要在初始化后更改数组内容,必须使用一些可以复制字符的函数,不能通过单个赋值执行此操作:
strcpy(string, "yo");
请注意,这是危险,因为strcpy()
不会知道数组的3个字符的限制。