检查字符串是否包含特定顺序字符

时间:2015-06-12 22:39:47

标签: c++

我尝试使用以下代码来检查字符串是否包含特定字符,但我想检查这个字符是否符合我的代码

string string1= "Amed";
string string2= "Anbhsmegfd";
std::string  x(string1);
if (x.find_first_not_of(string2) != std::string::npos)
{
    std::cerr << "Error\n";
}

在我的代码中检查字符串是否包含给出string1的字符,但我想检查是否按顺序查找此字符 作为一个例子

string1 ="Amed";
string2= "Aehdkm"

string2中找到的string1 但我需要输出error因为e出现在m之前 我该怎么做?

2 个答案:

答案 0 :(得分:1)

只需编写代码。这是伪代码,我留给你转换为c ++

char* s = str2
foreach (char c in str1)
    char *find = indexof(s, c)
    if(!find)
       error;
    s = find

ie - 查找第一个char - 如果找到移动指针,指向找到char的位置并搜索下一个char,否则失败

答案 1 :(得分:1)

这样的事情对你有用吗?

string s1 = "Amed";
string s2 = "Aehkm";
size_t k = 0;
for (size_t i = 0; i < s2.size(); ++i)
    if (s1[k] == s2[i]) {
        k++;
        if (k == s1.size()) {
            cout << "found" << endl;
            break;
        }
    }