C++ 如何将以“\0”开头的字符*转换为无符号整数?

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;

我有一个问题,我有字符串\005,我需要将其转换为无符号int值5。最好的方法是什么


这是从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};。