解析AT命令字符串为整数



我有以下字符串,它以错误代码结尾,这是一个int。如0511512513

我想要那个号码。

字符串是这样的:

+QIND: "FOTA","END",0

其中0为错误码。

这是我的试验:

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
// your code goes here
char tempdata[40] = "FOTA","END",0";
char* res = strstr(tempdata, "FOTA","END"");
if(res != NULL)
{
int percentage = atoi(res + strlen(tempdata) + 1);
cout << percentage << endl;
}
return 0;
}

好的,我解决了它没有解析或其他任何东西

int value;
if(sscanf(tempdata, "FOTA","END",%d", &value)>0)
{

cout<<value;
}

您可以像这样使用正则表达式:

#include <iostream>
#include <regex>
using namespace std;
int main(int argc, char** argv)
{
string input = R"(+QIND: "FOTA","END",5)"; // Use raw string literal to avoid escaping "
smatch matches;
regex r(R"(+QIND: "FOTA","END",(d+))");
regex_match(input, matches, r);

if(matches.size() == 2)
cout << "Number is " << matches[1] << endl;
return 0;
}

相关内容

  • 没有找到相关文章

最新更新