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

标签 c string variables printf

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

据我了解,像这样的东西应该定义一个字符串变量,然后将它打印到控制台:

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

但这行不通,那么正确的做法是什么?

最佳答案

这是行不通的,因为你不能在 C 中给数组赋值,除非在初始化它们的时候。

所以,你可以这样做:

char string[3] = "hi";

哪个更好(更安全)写成:

char string[] = "hi";

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

要在初始化后改变数组内容,你必须使用一些可以复制字符的函数,你不能用一个单一的赋值来做到这一点:

strcpy(string, "yo");

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

关于c - 在 C 中定义和打印字符串变量的正确格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925628/

相关文章:

c - C 中的指针何时计算出它引用的内存量?

c - 如果我为单个中断创建多个 ISR 会怎样?

Javascript - 如何知道有多少字符串与另一个字符串匹配?

C 的 strtok() 和只读字符串文字

c - 嵌入式系统中的启动代码流程,引导加载程序的概念?

sql-server - 仅选择带有数字的字符串 SQL Server

java - 查找并计算大写字母

jQuery如何从变量中选择值

php - 为什么我的变量通过引用传递?

php - 调用时调用未定义的函数