C++ 如何将以“\0”开头的字符*转换为无符号整数?
我有一个问题,我有字符串\005,我需要将其转换为无符号int值5。最好的方法是什么C++ 如何将以“\0”开头的字符*转换为无符号整数?,c++,string,int,C++,String,Int,我有一个问题,我有字符串\005,我需要将其转换为无符号int值5。最好的方法是什么 这是从curl响应中获取响应值 int main() { char *ptr = "\005"; stringstream strValue; strValue << *ptr; unsigned int intValue; strValue >> intValue; cout << ptr << endl;
这是从curl响应中获取响应值
int main()
{
char *ptr = "\005";
stringstream strValue;
strValue << *ptr;
unsigned int intValue;
strValue >> intValue;
cout << ptr << endl;
cout << intValue << endl;
return 0;
}
预计输出为5,但正在增加
0
如何将以\0开头的字符*转换为无符号整数
"\005"
字符串\005不是以字符“\0”开头的。它以字符“\005”开始,这是一个八进制转义序列,表示八进制数005,十进制表示为5。可以将字符转换为无符号整数类型,如下所示:
unsigned int n = ptr[0];
p.S.char*ptr=\005自C++11以来格式不正确,因为字符串文本不能隐式转换为指向char的非常量指针。这不是很明显吗?无符号整数n=*ptr;?您是否有一个字符串\005,即第一位有实际反斜杠,或[NUL]05,即第一个字符是ASCII 0字节?int intvalue=5;我会的。对于更有用的答案,您需要解释该字符串中的每个字符的含义,即值是如何编码的?值6将如何编码?10? 33?这是从旋度响应中获取响应值。-我知道\005是http响应中的字符串。因此,如果您试图将编码为数字5的不可打印字符解释为数字5,则需要对其进行解析以获得5。该行为就像您编写了char ptr[]={5,0};。