C ++验证字符串2

时间:2017-11-26 16:06:08

标签: c++ string

请帮帮我!!

它不起作用,我没有犯错误!

有一个函数来验证彼此的字符串是否存在? 谢谢 !!

#include <iostream>
#include <string>

using namespace std;

int main()
{
string mot1="abc";
string mot2="oooooabcooo";
int j=1;
while((j!=mot1.length())||(j!=0))
{
    for(int i=0;i<=mot.length();i++)
    {
        if(mot1[i]==mot2[i])
            {j++;}
            else j=0;
    }

}
if(j==mot1.length())
    cout<<mot1<<" existe dans "<<mot2<<endl;
    else

            if(j=0)
        cout<<"erreur";
return 0;
}

2 个答案:

答案 0 :(得分:2)

这是您正在寻找的功能。

mot2.find(mot1); // also std::find

希望这有帮助。

答案 1 :(得分:0)

有一些开箱即用的工具,但是如果你寻找人工编码,我对你的代码一无所知。相反,我这样找到了:

#include <iostream>
#include <string>

using namespace std;

int find(string mot1,string mot2)
{
    bool found;
    for(int j=0;j<mot2.length()-mot1.length()+1;j++)
    {
        found=true;
        cout<<"comparing "<<mot1.c_str()<<" and "<<(mot2.c_str()+j)<<endl;
        for(int i=0;i<mot1.length();i++)
            if(mot1[i]!=mot2[i+j])
            {
                found=false;
                break;
            }
        if(found)
            return j;
    }
    return -1;
}

int main()
{
    string mot1="abc";
    string mot2="oooooabcooo";
    cout<<find(mot1,mot2)<<endl;

    return 0;
}