我是编程新手。我正在Arduino计划中获得字符串。
如何从下面的字符串中仅提取整数(" 240")并转换为int。
GET /?LED=240&submit=Change+Pin+5%21 HTTP/1.1
我尝试使用index of()
阅读,但无法成功。
答案 0 :(得分:0)
您可以参考下面的C ++逻辑。
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <assert.h>
template <typename T>
T StringToNumber(const std::string &Text)
{
std::istringstream ss(Text);
T result;
ss >> result;
if(ss.fail())
{
result = 0;
assert(0);
}
return result;
}
int GetLEDNumber(const std::string& input)
{
int retValue = 0;
const std::string startPattern = "LED=";
const std::string endPattern = "&submit";
size_t firstPos = input.find(startPattern);
if(std::string::npos != firstPos)
{
size_t endPos = input.find(endPattern);
if (std::string::npos != endPos)
{
size_t positionOfLedNum = firstPos + startPattern.length();
size_t sizeOfLedNum = endPattern.length() - positionOfLedNum;
std::string ledNumber = input.substr(positionOfLedNum, sizeOfLedNum);
retValue = StringToNumber<int>(ledNumber);
}
}
return retValue;
}
int main()
{
std::string input = "GET /?LED=240&submit=Change+Pin+5%21 HTTP/1.1";
std::cout << GetLEDNumber(input) << std::endl;
return 0;
}