一、 需求
原料: string test = "[1,100]";
目标: 取出 1、100
两个数字;
二、生成结果
三、代码
可以使用字符串的substr函数来实现取出子串的操作。substr
函数的原型为:
string substr (size_t pos, size_t len) const;
其中,pos
表示子串的起始位置,len
表示子串的长度。
下面是一个示例代码,实现从字符串中取出[x,y]
中的x
和y
:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "[1,100]";
size_t pos1 = str.find("[");
size_t pos2 = str.find(",");
size_t pos3 = str.find("]");
if (pos1 != string::npos && pos2 != string::npos && pos3 != string::npos) {
string x = str.substr(pos1 + 1, pos2 - pos1 - 1);
string y = str.substr(pos2 + 1, pos3 - pos2 - 1);
cout << "x = " << x << ", y = " << y << endl;
}
return 0;
}
在上述代码中,使用了字符串的find
函数来查找字符串中的左括号、逗号和右括号的位置,如果都存在,则使用substr
函数来取出[x,y]
中的x
和y
。需要注意的是,substr
函数的第一个参数是起始位置,因此需要加上左括号的长度1
。