问题标题: 关于find函数的问题

3
0
已解决
被禁言 贾敬波
贾敬波
高级守护
高级守护

如果在字符串a中寻找是否存在字符串b,存在就输出1,不存在就输出2,大家看看这样写为什么不行?

    string a,b;
    getline(cin,a);
    getline(cin,b);
    if(a.find(b,0)>=0)
    cout<<1;
    else cout<<0;

这样写的话无论是否存在都会输出1

贾敬波在2018-01-24 09:03:04追加了内容

不存在就输出0,写错了啊。


0
已采纳
王星河
王星河
资深光能
资深光能

@贾敬波 @蒋智航 @刘凯南 

string::nops 不一定等于 -1 ,例如在我的编译器上是 2^32-1 ,所以第 4~6 行一定要写成

if(a.find(s2,0)!=string::npos)
cout<<1;
else cout<<0;

 

1
陶梓锐
陶梓锐
新手光能
新手光能

    if(a.find(b,0)!=string::npos) cout<<1;
        else cout<<0;

 

    s.find(s1,a); 
    再s字符串的a下标寻找字符串s1
    如果找不到,通常与string::npos比较,输出 no 

    求采纳,谢谢!

陶梓锐在2018-01-18 13:29:32追加了内容

采纳者最帅

 

0
0
刘凯南
刘凯南
高级守护
高级守护
 if(a.find(b,0)!=-1) cout<<1;
        else cout<<0;

string::npos=-1,常识

0
蒋智航
蒋智航
高级天翼
高级天翼

string::npos=-1

采纳者最帅

0
-1
方子彤
方子彤
新手守护
新手守护
 if(a.find(b,0)!=string::npos) cout<<1;
        else cout<<0;



    s.find(s1,a); 
    再s字符串的a下标寻找字符串s1
    如果找不到,通常与string::npos比较,输出 no 

 

我要回答