C++ 检查字符串C+的内容+;

C++ 检查字符串C+的内容+;,c++,string,C++,String,如果我让一个程序读取一个文件,其中包含类似“Boss1 Dave Jim Boss3 Coleen Boss 7 Harris Todd Elaine”的内容,并且我试图将输入分为一个Boss列表和一个姓名列表,我会检查输入的每个字符串,但我如何判断此人是否是Boss?首先,我会设置如下内容: void read(std::istream& is, Bosses<std::string>& bossList, Employees<std::string>

如果我让一个程序读取一个文件,其中包含类似“Boss1 Dave Jim Boss3 Coleen Boss 7 Harris Todd Elaine”的内容,并且我试图将输入分为一个Boss列表和一个姓名列表,我会检查输入的每个字符串,但我如何判断此人是否是Boss?首先,我会设置如下内容:

void read(std::istream& is, Bosses<std::string>& bossList, Employees<std::string> empList){

    std::string name;
    while(!is.eof()){
        is >> name;
        }
    }
void read(标准::istream&is、老板和老板列表、员工雇员列表){
std::字符串名;
而(!is.eof()){
是>>名称;
}
}

但是如果像
name==“Boss”
这样的东西,我需要检查while循环,但是我对字符串的理解不够好,不知道如何设置它。

您可以使用插入操作符解析名称字符串,因为您的字符串是以空格分隔的,插入操作符跳过空格(默认情况下)

void read(std::istream& is, Bosses<std::string>& bossList, Employees<std::string> empList) {
    std::string temp;
    std::vector<std::string> all_names;
    //the insertion operator reads the string and bypasses all whitespace by default
    while (is >> temp) {

        //find bosses by using `std::string
        if (temp.find("Boss") != std::string::npos) {
            boosList.push_back(temp);//you didn't state what container `Bosses` uses but, `push_back is valid for `lists`, `vectors` and `deques`
        }
        else {
            empList.push_back(temp);//you didn't state what container `Employees` uses but, `push_back is valid for `lists`, `vectors` and `deques`
        }
    }
}
void read(标准::istream&is、老板和老板列表、员工雇员列表){
std::字符串温度;
std::矢量所有_名称;
//默认情况下,插入运算符读取字符串并绕过所有空白
while(is>>temp){
//使用'std::string'查找凸台
if(临时查找(“Boss”)!=std::string::npos){
boosList.push_back(temp);//您没有说明容器'boss'使用了什么,但是'push_back对于'list'、'vectors'和'deques'有效`
}
否则{
employist.push_back(temp);//您没有说明容器'Employees'使用什么,但是'push_back对于'lists'、'vectors'和'deques'有效`
}
}
}

从充分理解字符串开始,然后继续执行更复杂的任务。使用
当(is>>name){…}
时,它还将检查除了
EOF
之外的其他错误。如果您保证boss将从
boss
开始,那么您可以执行
std::string::find(“boss”)
。如果它返回
0
(字符串的开头),那么它就是一个boss。可以保证,@ssel,我现在有:
如果(name.find(“boss”)==0)
那么它就是一个boss,并进入正确的列表。现在测试一下,谢谢