c++字符串,测试[0]是否为空格,问题
C++ string, test if [0] is space, issues
我是一个初学者,试图在c++中学习一些简单的概念,我有字符串操作的问题:
do {
cout << "Please, enter your full name: ";
getline (cin,name);
} while (name.empty() == true && name[0] != ' ');
据我所知,0是数组中的第一个出现?然而,当运行代码并输入' '时,我得到一个"超出范围错误"。
因为你的代码使用&&
,它不会检查条件的第二部分,除非第一个是true
,即只有空字符串会检查初始字符是空格,这是一个未定义的行为。你需要的是一个||
,像这样:
do {
cout << "Please, enter your full name: ";
getline (cin,name);
} while (name.empty() || name[0] == ' ');
注意,没有必要将bool
函数的返回值与true
进行比较,因为只有当表达式已经是true
时,比较才会成功。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 2D数组来自文本输入,中间有空格
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 字符串中的空格是否会改变程序解释它的方式
- 如何检测用户是否进入空格栏
- 是否有一个WinAPI可以从带有可选空格和其他参数的命令行获取文件名
- 有效地检查文本文件是否完全由空格c++组成
- 如何检查字符串是否包含空格/制表符/换行符(任何空白内容)?
- LPCSTR-如何检查第一个位置是否为空格" "
- 有没有一种简单的方法可以检查cin输入是否有空格
- c++字符串,测试[0]是否为空格,问题
- 如何控制是否打印空格
- 检查 std::string 是否只有空格的有效方法
- 在反斜杠后面是否允许空格来继续一行(在C/ c++中)