【发布时间】:2016-01-03 08:10:03
【问题描述】:
例如,我需要一个 char 数组,其中包含 NUL '\0' 字符,后跟 char '1'。将 char 数组初始化为:
char *str = "foo\01bar";
产生以下等效的十六进制表示:
<hex values of foo> 0x1 <hex values of bar>`
而我需要:
<hex values of foo> 0x0 <hex value of char '1'> <hex values of bar>
如何定义这样的char数组(以char *str = <mycustomarray>;的方式);
我知道,修改后的附加例程也附加 NUL 字符可以解决问题,但我对此不感兴趣。
【问题讨论】:
-
C 没有字符串类型。这都是惯例。请查阅您的 C 书。
-
什么语言? C 还是 C++?
-
C++ 不是 C 不是 C++。选择一种语言!
-
@Olaf 确实 C 没有字符串类型,但确实有一个 string 作为字符数组的特例。
-
@chux:这是 C 语言中的普通
char数组。 C stdlib 的“字符串”函数只是使用数据的特殊编码。该语言的唯一直接支持是字符串文字,它们被转换为(const) char *.