如何在char数组中存储'\ 0'

UFC*_*der 4 c string printf

是否可以将char存储在char '\0'数组中,然后存储不同的字符?例如

char* tmp = "My\0name\0is\0\0";
Run Code Online (Sandbox Code Playgroud)

我被教导实际上在C中称为字符串列表,但当我尝试打印上面(使用printf("%s\n", tmp))时,它只打印

"我的".

Sou*_*osh 5

是的,但是,肯定有可能的是,您不能将该数组用作字符串并获取存储后的内容'\0'.

根据定义,字符串是一个以null字符结尾char数组.所有的字符串相关的功能将停止在终止空字节(例如,参数,包含实际内容,传递给格式说明之间在中).'\0''\0'%sprintf()

引用C11,章节§7.1.1,术语定义

字符串是由第一个空字符终止并包括第一个空字符的连续字符序列.[...]

但是,对于逐字节处理,只要保持在分配的内存区域内,就可以继续使用.