我有以下字符串,它以错误代码结尾,这是一个int
。如0
、511
、512
、513
等
我想要那个号码。
字符串是这样的:
+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;
}