Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是一个初学者,试图在 C++ 中学习一些简单的概念,我遇到了字符串操作 atm 的问题:
do { cout << "Please, enter your full name: "; getline (cin,name); } while (name.empty() == true && name[0] != ' ');
据我了解,0 是数组中的第一次出现?然而,在运行代码并输入“”时,我收到“超出范围错误”。
由于您的代码使用&&,它不会检查条件的第二部分,除非第一个是true,即只检查空字符串的初始字符是否为空格,这是未定义的行为。你需要的是一个||,像这样:
&&
true
||
do { cout << "Please, enter your full name: "; getline (cin,name); } while (name.empty() || name[0] == ' ');
请注意,不需要将bool函数的返回值与true进行比较,因为只有当表达式已经是 时,比较才会成功true。
bool