我尝试使用以下代码来检查字符串是否包含特定字符,但我想检查这个字符是否符合我的代码
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
之前
我该怎么做?
答案 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;
}
}