Bef*_*all 14 c++ string whitespace
我知道这很简单,我不记得最好的办法.我有一个输入" 5 15 "
,它定义了2D矢量数组的x和y.我只需要将这两个数字放入int col
和int row
.
最好的方法是什么?我正在尝试使用stringstreams,但无法弄清楚正确的代码.
谢谢你的帮助!
小智 16
在C++字符串工具箱库(StrTk)具有以下问题的解决方案:
int main()
{
std::string input("5 15");
int col = 0;
int row = 0;
if (strtk::parse(input," ",col,row))
std::cout << col << "," << row << std::endl;
else
std::cout << "parse error." << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更多例子可以在这里找到
注意:此方法比标准库例程大约快2-4倍,并且比基于STL的实现(stringstream,Boost lexical_cast等)快120倍,用于字符串到整数转换 - 当然取决于编译器使用.
Jam*_*lis 10
你可以使用stringstream
:
std::string s = " 5 15 ";
std::stringstream ss(s);
int row, column;
ss >> row >> column;
if (!ss)
{
// Do error handling because the extraction failed
}
Run Code Online (Sandbox Code Playgroud)