是否可以将 char '\0'
存储在一个 char 数组中,然后再存储不同的字符?例如
char* tmp = "My\0name\0is\0\0";
有人教我在 C 中实际上称为字符串列表,但是当我尝试打印上面的内容时(使用 printf("%s\n", tmp)
),它只打印了
"My".
最佳答案
是的,这肯定是可能的,但是,此外,您不能将该数组用作 string 并获取存储在 '\0'
之后的内容。
根据定义,一个字符串是一个char
数组,以空字符'\0'
结束>。所有与字符串相关的函数都将在终止空字节处停止(例如,一个参数,在实际内容之间包含一个'\0'
,传递给格式说明符%s
在 printf()
中)。
引用 C11
,章节 §7.1.1,术语定义
A string is a contiguous sequence of characters terminated by and including the first null character. [...]
但是,对于逐字节处理,只要您留在分配的内存区域内就可以了。
关于c - 如何将 '\0' 存储在 char 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41535879/