我一直在从事一个项目,该项目以日期格式获取用户输入,例如“05/10/1996”,然后将其解析为三个整数。一个是月,一个是天,一个是年。我正在查看函数 getline() 但不太确定如何使用它一次解析多个对象。有没有办法用while循环来做到这一点?如果是这样,我会很感激一些帮助,因为我有点坚持这一点。
问问题
1026 次
2 回答
1
这是其中一种方式-
void split(std::vector<std::string> &tokens, const std::string &text, char sep) {
int start = 0, end = 0;
while ((end = text.find(sep, start)) != std::string::npos) {
tokens.push_back(text.substr(start, end - start));
start = end + 1;
}
tokens.push_back(text.substr(start));
}
用法 -
int main(int argc, const char * argv[]) {
std::vector<std::string> tokens;
std::string *text = new std::string("05/10/1996");
split(tokens, *text, '/');
int first = atoi(tokens[0].c_str());
int second = atoi(tokens[1].c_str());
int third = atoi(tokens[2].c_str());
std::cout<<first<<std::endl;
std::cout<<second<<std::endl;
std::cout<<third<<std::endl;
while (true);
return 0;
}
使用整数变量在控制台上输出 -
5 10 1996
有关高级解决方案/讨论 - 请参阅此问题。
于 2013-10-27T03:31:20.600 回答
0
int m,d,y;
char dummy;
cin >> m >> dummy >> d >> dummy >> y;
于 2013-10-27T02:53:08.743 回答