不使用循环的char数组反向查找

时间:2019-05-23 19:59:03

标签: c++

我有一个字符串=“ ABCD”,因此string [2]将返回'C' 如果我有'C'并想在字符串中查找C的位置怎么办?

是否可以是返回给定字母位置的函数,例如

int查找(字符串a)

在这种情况下,它应该返回2?

我知道我可以使用for循环来查找它,如代码所示。我的问题是我的作业需要我在不使用任何“循环”的情况下进行查找,因此for循环或while或do while不够用。

#include <iostream>
#include <string>

using namespace std;

const char digits[] = { 'A', 'B', 'C', 'D' };

int lookup(string a, char b);

int main()
{
    string str = "ABCD";

    cout << lookup(str, 'D') << endl;
    return 0;
}

int lookup(string a, char b)
{
    // look up algorithm there
    for ( int i = 0 ; i < a.size() ; i++)
    {
        if ( a[i] == b)
        {
            return i;
        }
    }
    return -1;
}

我的示例代码很好,但是我需要一种替代方法来查找没有循环的值。有可能吗?

1 个答案:

答案 0 :(得分:0)

谢谢!

因此,整个查询功能可以替换为这一行:

return a.find(b);

非常感谢您!