gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:05:15 26 4
gpt4 key购买 nike

我想输入一个代码,例如 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com