jeudi 23 septembre 2021

Check if input string has leading or trailing whitespaces in C++?

I am trying to validate a single-line input string in C++11 to see if it contains any leading / trailing whitespaces. My code now looks like this:

bool is_valid(const std::string& s) {
    auto start = s.begin();
    auto end = s.end();
    if (std::isspace(*start) || std::isspace(*end)) {
        return false;
    } 
    return true;
}

int main() {
    std::string name{};
    std::getline(std::cin, name);
    if (!is_valid(name)) {
        std::cout << "Invalid!";
    }
    return 0;
}

But now the program can only detect leading whitespaces. For example, for John it would print Invalid! but for Mary it would classify it as valid input, which is not. Does anyone know what's wrong with my program? Thanks!

Aucun commentaire:

Enregistrer un commentaire