bool函数返回意外值

时间:2019-08-24 15:20:10

标签: c++

isValid(“ 23:15”)当应返回1时返回0

bool isValid(string s){
    int pos = s.find(":");
    if(s.length() < 4 || s.length() > 5)
        return false;
    else if(s.length() == 5)
    {
        if(s[0] > 2)
            return false;
    }
    if(s[pos + 1] > 5 )
    {
        return false;
    }
    return true;
}

实际输出= 0

1 个答案:

答案 0 :(得分:3)

我猜你把数字弄糊涂了。

if(s[0] > 2)

应该是

if (s[0] > '2')

if(s[pos + 1] > 5 )

应该是

if (s[pos + 1] > '5')

您还需要考虑如果s不包含冒号会发生什么情况。