从ID字符串中提取整数

时间:2015-10-27 22:57:36

标签: c++ string

我正在尝试从字符串UID001中获取数字cin.get(用户将始终输入“UIDnnn”)。我尝试使用cin.ignorehas_key?分隔符,但没有结果。从字符串中提取整数的最有效方法是什么?

2 个答案:

答案 0 :(得分:0)

嗯,最简单的符合c ++标准的解决方案似乎与我的评论中提到的一样。

将ID值读为std:string

std::string ID;
std::cin >> ID;

获取带有数字部分的子字符串:

std::string numpart = ID.substr(3);

将其转换为数值:

int idnum = std::stoi(numpart);

答案 1 :(得分:0)

这是scanf和公司真正运作良好的地方之一:

scanf("UID%d", &number);

对于iostream来说,它有点丑陋,但我会考虑这样的事情:

for (int i=0; i<3; i++) {
    char ch;
    cin.get(ch);
}
cin >> number;