我有一个读取字符数组的程序.我需要内存中字符串的值等于十六进制0x01020304,它们都是非ASCII字符.所以问题是,如何在运行时将非ASCII字符传递给字符串文字变量?
ava*_*kar 17
使用转义序列.确保按正确顺序放置字符.
"\x01\x02\x03\x04"
Run Code Online (Sandbox Code Playgroud)
编辑:如果需要将序列放入现有的char数组中,只需将其分配即可.
char s[4];
// ... later ...
s[0] = 0x01;
s[1] = 0x02;
s[2] = 0x03;
s[3] = 0x04;
Run Code Online (Sandbox Code Playgroud)
不要试图通过强制转换为指定的号码s来(int32_t *),char数组没有正确对齐.
在 C 语言中,最简单的可能是使用十六进制转义符号: "\x01\x02\x03\x04"。(如果没有 x,这些值是八进制的,这在当今不太流行或不易于理解。)
或者,
char x[] = {1, 2, 3, 4, 0};
Run Code Online (Sandbox Code Playgroud)
应该可以工作(请注意,像这样初始化时必须包含空终止)。
| 归档时间: |
|
| 查看次数: |
16853 次 |
| 最近记录: |