gpt4 book ai didi

c++ - 从字符数组中提取字符串

转载 作者:行者123 更新时间:2023-11-28 03:45:53 25 4
gpt4 key购买 nike

我试过 memcpy/strncpy/std::copy 但它们似乎都不起作用导致程序崩溃。

这是我需要做的:

例如,我正在尝试解析来自用户输入的争论。“消息-添加 0xAE”

我需要将 0xAE 部分提取为整数,这是一些伪代码_input 将保存完整的字符串“message -add 0xAE”

if(strstr(_input,"message -add 0x")){
char* _temp;
std::copy(strlen("message -add 0x"),strlen("message -add 0x")+(strlen(_input)-strlen("message -add 0x")),_temp);
/* or */
memcpy(_temp,_input+strlen("message -add 0x"),strlen(_input)-strlen("message -add 0x"));
int _value = (int)_temp;
CLog->out("\n\n %d",_value);
}

编辑:谢谢艾伦!

if(strstr(_input,"message -add 0x")){
char* _temp = new char[strlen(_input)-strlen("message -add 0x")];
memcpy(_temp,_input+strlen("message -add 0x"),strlen(_input)-strlen("message -add 0x"));
int _value = atoi(_temp);
CLog->out("\n\n %d",_value);
}

最佳答案

您在寻找:

int value = 0;
char c;
for(int i = strlen("message -add 0x"); c = *(_input + i); i++) {
value <<= 4;
if(c > '0' && c <= '9') {
// A digit
value += c - '0';
} else if(c >= 'A' && c < 'G') {
// Hexadecimal
value += 10 + c - 'A';
}
}

?

关于c++ - 从字符数组中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com