gpt4 book ai didi

c++ - 检查输入字符串在 C++ 中是否有前导或尾随空格?

转载 作者:行者123 更新时间:2023-12-04 14:30:46 25 4
gpt4 key购买 nike

我正在尝试验证 单线在 C++11 中输入字符串以查看它是否包含任何前导/尾随空格。我的代码现在看起来像这样:

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;
}
但现在程序只能检测前导空格。例如,对于 John它会打印 Invalid!但对于 Mary 它会将其归类为有效输入,而事实并非如此。有谁知道我的程序有什么问题?

最佳答案

std::string::front() 的简单测试和 std::string::back()可以在测试空字符串后完成:

bool is_valid(const std::string& s) 
{
return s.empty() ||
(!std::isspace(static_cast<unsigned char>(s.front())) &&
!std::isspace(static_cast<unsigned char>(s.back())));
}

关于c++ - 检查输入字符串在 C++ 中是否有前导或尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69300854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com