检查字符串包含特定的顺序字符
问题描述:
我用下面的代码尝试检查,如果字符串包含特定字符,但我想以这样在我的代码检查,以检查这个人物这我的代码检查字符串包含特定的顺序字符
string string1= "Amed";
string string2= "Anbhsmegfd";
std::string x(string1);
if (x.find_first_not_of(string2) != std::string::npos)
{
std::cerr << "Error\n";
}
如果字符串包含给字符串1个字符,但我要检查,如果发现顺序方式 这个字符作为字符串2
发现了一个例子
string1 ="Amed";
string2= "Aehdkm"
的字符串1,但我需要的输出将b e error
,因为e
出现在m
之前 我该怎么做?
答
会这样的工作吗?
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;
}
}
答
只写code.Here是伪代码,我让你转换到C++
char* s = str2
foreach (char c in str1)
char *find = indexof(s, c)
if(!find)
error;
s = find
即 - 寻找的第一个字符 - 如果发现指针移动到你发现char和搜索为下一个字符,否则失败
动态编程会起作用。或者在较小的字符串上递归回溯逐字符。 – twentylemon
实际上string1不在后者的string2中。 – traveh
@traveh更新 – mbugr