我试图在字符串中的某个位置找到一个空格,但我遇到的麻烦比我预期的要多得多。
我尝试了很多方法,但没有一种方法,而且更有意义的是
if (isspace(string.at(3)))
{
spacePresent = true;
}
让我们说我的字符串是123 56,我希望它返回true,如果它像123456那样,那就错了。我已经在这几个小时了,现在我必须睡觉了,希望我能在晚安睡觉后解决这个问题......
我上面尝试的方式给了我一个out_of_range错误。
在抛出' std :: out_of_range'的实例后终止调用 what():basic_string :: at
答案 0 :(得分:0)
if (string.size()>=4 && isspace(string.at(3)))
这个例外意味着什么在锡上说。 3超出了字符串的范围。
NB 1:isspace(.)
标识各种空格字符(如标签等)。我认为这是你想要的,而不仅仅是普通的==' '
。
NB 2:string
不是标识符的绝佳选择,因为它也是类的名称。可能会导致你(但不是编译器)混淆。
答案 1 :(得分:0)
因此,如果我知道std :: cin>>那么我之前尝试过的所有方法都可能有效。输入;不适用于空格。
关于字符串名称,这是我的编辑器中的其他内容,这是我第一次在这里发帖,所以我改变了它认为它更简单但是很好..
我现在用它来获取我的数字字符串输入,它与WhozCraig在评论中发布的内容很吻合:
std::getline(std::cin, x);