C++:将负字符值插入字符串文字?

标签 c++ string ascii

我有一个文本渲染器,它使用字符串中的负 char 值以我制作的字体渲染自定义符号,而不是常规的 ascii 文本。

text.write("Hello! _"); // insert a heart at the underscore somehow...
                        // the heart's value is char -10

有没有办法得到一个负的 char 值,静态地写在双引号内?或者有没有办法在引号之外执行此操作,但仍然作为字符串文字?

编辑:

澄清一点,不幸的是,在这种特殊情况下我必须使用 char 数组。代码内部使用std::string,所有正值均采用标准ascii字形。我的目标是能够在字符串文字中注入(inject)一个负数来表示额外的符号。所以以下内容为真:

const char * literal = "a literal w/ a negative char value as the 10th element"
literal[9] == -10; // would be true

最佳答案

你可以写"Hello!\xf6"。 f616 = -10 + 256

这是可行的,因为在 8 位 2 补码整数中,负值 -128 .. -1 与 256 个更大的无符号值 128 .. 255 具有相同的位表示>.

关于C++:将负字符值插入字符串文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25424490/

相关文章:

c++ - 如何根据一定的概率得到一个值

python - 使用正则表达式查找具有条件的子字符串

python - 在python中比较单词的值时,为什么 "Nick"会大于 "George"?

汇编、打印ascii码

c# - 如何在 C#.net 中将 EBCDIC 转换为 ASCII

c++ - 对 C++ 中模板方法的 undefined reference

c++ - 将 std::string 散列为 std::size_t 以外的东西

c++ - 在调用 future.get() 之前销毁 std::promise 是否可以?

java - 从字符串中提取 2 个不同的 double 值

c# - 从一个主字符串中获取不同的子字符串