说我有以下内容:
int i = 'abc';
如果有办法将字符串更改为multiCharacter文字,如下所示
char* str="abc";
int j = ?
(我们也要设置int j= 'abc'
)。
但如何用字符串做到这一点?
答案 0 :(得分:1)
C99 6.4.4.4/10:
包含多个字符(例如,'ab')的整数字符常量的值,或包含未映射到单字节执行字符的字符或转义序列的值是实现定义的。“
C ++ 11 2.14.3 / 1:
多字符文字具有int类型和实现定义 值。
因此,如果不知道具体实现的作用,则无法重现相同的结果。一旦你知道它做了什么,你应该能够毫无问题地自己计算j
。
答案 1 :(得分:0)
您可以在运行时将字符串数据转换为整数。
知道char
类型可以被视为整数,因此可以将其置于整数中。
如果我们假设一个平台每个字符8位,默认char
类型是无符号的,unsigned int
是32位,我们可以从字符创建一个整数:
char text[] = "abcd";
unsigned int value;
value = text[0] << 24
+ text[1] << 16
+ text[2] << 8
+ text[3];
如果要在编译时将字符串文字转换为多字节文字,可能会涉及更多问题。