例如,任何不同于a.b.c.xyz
或a.b.c.xyz
或-
的字符都需要分开并放在向量中。
我怎样才能做到这一点呢?
std::string inputLine;
vector<string> inputs;
getline(std::cin, inputLine);
此时我从用户输入中得到了字符串,如何拆分它呢?
例如:hello,sir my Nameéis ada-m应该放在一个向量中,如下所示
输入。at(0):您好
输入。在(1):先生
输入。在(2):我的
inputs.at(3):名称
Inputs.at(4):is
输入。AT(5):ada-m
这是一个简单的算法
输入
s
inputline
的每个字符c
C
在'a''b''c'..'x''y''z'
或'a''b''c'..'x''y''z'
或'-'
中
C
追加到S
S
追加到输入
(还可以检查S
是否为空)s
如果可以使用boost,则可以使用
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>
int main()
{
std::string line("hello,sir my nameéis ada-m");
std::string delem = ",| ";
std::vector<std::string> tokens;
boost::split(tokens, line, boost::is_any_of(delem));
for (auto& e : tokens)
{
std::cout << e << "\n";
}
}
您可以在compailer explorer上看到它