如何在C中构造一个具有绝对整数值和等效char整数值的char数组?

时间:2016-01-03 08:10:03

标签: c++ c string

例如,我需要一个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字符就可以了,但我对此并不感兴趣。

2 个答案:

答案 0 :(得分:5)

来自C ++标准:

  

八进制转义序列:
  \ octal-digit
  \ octal-digit八进制数字
  \ octal-digit octal-digit octal-digit

您可以使用:

char *str = "foo\0001bar";

char *str = "foo\0" "1bar";

答案 1 :(得分:0)

根据cppreferenceWikipedia,允许的序列包括\nnn(八进制)和\xnn(十六进制)。要防止1被视为转义序列的一部分,您必须用零填充所有数字,例如\0001\x001