测试字符串内的空格字符...?
我正在尝试测试字符串中的字符是否是空格,我感到非常沮丧:
string my_string;
cin >> my_string;
for (int i = 0; i < my_string.length(); i++)
{
if (my_string[i] == ' ') // this never becomes true...
{
cout << "this text should pop, but never does" << endl;
}
}
我没有收到任何错误,并且我在网上查看过,但是不同论坛上的人们说这是测试的方法一个空间。呃。
I'm trying to test if a character in a string is a space, and I'm getting extremely frustrated:
string my_string;
cin >> my_string;
for (int i = 0; i < my_string.length(); i++)
{
if (my_string[i] == ' ') // this never becomes true...
{
cout << "this text should pop, but never does" << endl;
}
}
I'm not getting any errors and I've looked online, but people on different forums say this is how to test for a space. Uh.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当您说
您正在采用格式化输入时。
std::cin
会丢弃该行中的所有空格,并且最多读取并仅生成一个单词。尝试
获取一行,或者
将文件结束标记之前的所有内容放入字符串中。
when you say
you are taking formatted input.
std::cin
discards any whitespace in that line, and it reads up to and yields only a single word.try instead
to get a single line, or
to get everything up to an end-of-file mark into the string.
那是因为 cin 在第一个空格处停止读取,因此您实际上从未读取整个句子,而是读取第一个单词。请改用 getline。
Thats because cin stops reading at the first whitespace so you never actually read the entire sentence but the first word. Use getline instead.
另外,要测试是否存在空格,请使用
std::string::find< /代码>
!
Additionnally to test whether a space is present use
std::string::find
!