c++ - 使用带有字符串的 find_first_of 而不是 C++ 中的一组预定义字符

标签 c++ string

我想输入一个代码,例如 ABC,并检查代码中的字符是否以字符串中的确切顺序出现,例如代码 ABC 和字符串 HAPPYBIRTHDAYCACEY,是否符合条件。然而,代码为 ABC 的字符串 TRAGICBIRTHDAYCACEY 没有通过,因为在“a”之后的“b”之前有一个“c”。我想使用 find_first_of 函数来搜索我的字符串,但我想检查“代码”中的任何字符,而事先不知道“代码”中的字符是什么。到目前为止,这是我的程序:

    #include <iostream>
    #include <string>
    using namespace std;

 int main() {

string code, str, temp;
int k = 0;
int pos = 0;

cin >> code >> str;

while (k < code.size()) {
    pos = str.find_first_of(code,pos);
    temp[k] = str[pos];
    ++k;
    ++pos;
}
cout << temp << endl; // debug. This is just outputs a newline when i 
 //run the program
if (temp == code) {
    cout << "PASS" << endl;
}
else {
        cout << "FAIL" << endl;
}
return 0;

}

最佳答案

我认为最好的办法是只找到第一个字符,一旦找到,就在字符串的剩余部分中找到下一个,重复直到字符串结尾或找到所有字符(并分别返回 false 或 true)。

我不认为有任何内置的东西。如果字符需要直接出现在彼此之后,您可以使用 std::string::find() 来搜索子字符串,但这不是您想要的。

关于c++ - 使用带有字符串的 find_first_of 而不是 C++ 中的一组预定义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48499482/

相关文章:

string - Dart/flutter : Split string every nth character?

python - 按频率对 str 系列进行排序

c++ - 为什么struct在C/C++中有两个变量名

c - 使用 scanf 阅读两个长句子

c++ - 用字符串指定 vector 的类型

c++ - 在 C++ 中查找函数

c - 用于连接多个字符串的 snprintf 无法按预期工作

Java:匹配具有未知字符的字符串的算法

c++ - 关于c++ try catch的一些问题

c++ - 在 const 成员不良做法或 UB 中修改 const 变量?