我正在使用c ++,而法官给我一个很长的字符串(它不能用字符串)。 我只需要最后两个角色!我该怎么办 ??别忘了这段代码没有正确回答!
char a,b;
std::string s;
std::cin >> s;
a=s[s.size()-1];
b=s[s.size()-2];
答案 0 :(得分:0)
std::cin >> s;
这会对空格字符的输入进行标记。也就是说,如果Long John Silver
在标准输入中等待,您只会在Long
中获得s
。在循环中执行
while (std::cin >> s) ;
或使用std::getline(std::cin, s);
代替(如果输入可以包含换行符,则同样适用 - 然后在循环中执行)。
答案 1 :(得分:0)
此函数安全地返回任何字符串的最后2个字符,除非字符串中少于2个字符,在这种情况下它将返回所有可用字符:
std::string last_2(const std::string& s)
{
return std::string(std::prev(s.end(), 2),
s.end());
}
这样做:
std::string last_2(const std::string& s)
{
return s.substr(std::max(s.length(),std::size_t(2))-2, 2);
}