Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Bulild字符串变量,实际上是一个十六进制数_C++_String_Hex - Fatal编程技术网

C++ Bulild字符串变量,实际上是一个十六进制数

C++ Bulild字符串变量,实际上是一个十六进制数,c++,string,hex,C++,String,Hex,假设我有string变量: string str1 = "\x11"; 假设我想手动构建这个字符串,意思是,我有: string str2 = "11" 并天真地想做: string str3 = '\x' + "11" 有没有一种方法可以用这样的方式构造str3,即str3==str1?是这样的: std::stringstream ss; ss << (char) 0x11; std::string str3 = ss.str(); std::stringstream-s

假设我有
string
变量:

string str1 = "\x11";
假设我想手动构建这个
字符串
,意思是,我有:

string str2 = "11"
并天真地想做:

string str3 = '\x' + "11"
有没有一种方法可以用这样的方式构造str3,即str3==str1?

是这样的:

std::stringstream ss;
ss << (char) 0x11;
std::string str3 = ss.str();
std::stringstream-ss;

ss如果开始时的整数小于256,则只需执行以下操作即可

int small = 17; // 0x11 hex
sanity check here
str[0] = (char)small;
如果你从一个字符串开始

int small = HexToInt("11"); // 0x11 hex, find a HexToInt on the next.
sanity check here
str[0] = (char)small;

@提姆劳:谢谢,修好了。@Martijn-Courtaux,很好用。如果您能用几句话解释第一种方法的工作原理,我会很高兴。嗯,0x11只是一个编译时常量整数。将该字符强制转换为一个字符,并将该字符附加到stringstream。str3始终等于str3
int small = 17; // 0x11 hex
sanity check here
str[0] = (char)small;
int small = HexToInt("11"); // 0x11 hex, find a HexToInt on the next.
sanity check here
str[0] = (char)small;