#include <bits/stdc++.h>
using namespace std;
int main()
{
string in_code;
std::cin >> in_code;
int word;
word = in_code.find(" ");
in_code.erase(0, (word + 1));
cout << in_code << endl;
}
当我输入“Jhonis_a_Good_BOY”时,这个程序应该返回“is_a_Good_boy”。但上面印着“J号”。如何解决以上问题?
您可能应该使用getline来处理这个问题,以便捕获输入的整个行,并在使用string.find时进行验证。
下面是注释示例。
#include <string>
#include <iostream>
int main()
{
std::string in_code; //String to store user input
std::getline(std::cin, in_code); //Get user input and store in in_code
int word = in_code.find(" "); //Get position of space (if one exists) - if no space exists, word will be set to std::string::npos
if (word != std::string::npos) //If space exists
{
in_code.erase(0, word + 1); //erase text before & including space
std::cout << in_code << std::endl;
}
else
{
std::cout << "The entered input did not contain a space." << std::endl;
}
return 0;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。