只需要长字符串c ++的最后一个字符

时间:2014-12-18 11:27:09

标签: c++ character

我正在使用c ++,而法官给我一个很长的字符串(它不能用字符串)。 我只需要最后两个角色!我该怎么办 ??别忘了这段代码没有正确回答!

char a,b;
std::string s;
std::cin >> s;
a=s[s.size()-1];
b=s[s.size()-2];

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);
}