关于string empty 求助
  • 板块灌水区
  • 楼主haiqian
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/7/1 20:07
  • 上次更新2024/7/1 22:32:46
查看原帖
关于string empty 求助
679630
haiqian楼主2024/7/1 20:07

rt

题目P4896

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<map>
using namespace std;
char incmd[500005];
string teacher,stu;
string name,command;
map<string,int> teamark,stumark;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=3;++i){
        cin>>teacher;
        teamark[teacher] = 10000;
    }
    for(int i=1;i<=5;++i){
        cin>>stu;
        stumark[stu] = 10000;
    }
    for(int i=1;i<=n;++i){
        name.erase();
        command.erase();
        gets(incmd);
        //sscanf(incmd,"%s %s",name,command);
        for(int j=0;j<strlen(incmd);++j){
            //cout<<(int)incmd[j]<<" ";
            if(incmd[j]==' '){
                for(int k=j+1,ck=0;k<strlen(incmd),ck<(strlen(incmd)-(j+1))+1;++k,++ck){
                    command[ck] = incmd[k];
                }
                for(int k=0;k<j;++k){
                    name[k] = incmd[k];
                }
                break;
                
            }
        }
        cout<<name.empty()<<" "<<command.empty()<<"\n";
        //if(name.empty()==1 || command.empty()==1) continue;
        cout<<"name:"<<name.c_str()<<" command:"<<command.c_str()<<"\n";
    }
    return 0;
}

(代码是半成品,没写完)

这里的namename和commandcommand字符串,用

cout<<name.empty()<<" "<<command.empty()<<"\n";

cout<<"name:"<<name.c_str()<<" command:"<<command.c_str()<<"\n";

这两行输出之后,第一行全返回true,但是第二行又有内容

说明这两个字符串有内容

但是为什么empty返回true?

求助dalao

附上运行结果

2024/7/1 20:07
加载中...