如何使这个程序在数组中打印搜索字符的索引,否则将打印未找到?

时间:2018-02-10 23:18:44

标签: c++

#include <iostream>

using namespace std;
int main () {
char arr[7];
char x;
for (int i = 0; i < 7; i++)
{
    cin >> arr[i];
}
cin >> x;
for (int i = 0; i < 7; i++)
{
    if (x == arr[i])
        cout << i << endl;

    else {
        cout <<"Not found";
    break;
    }
}

}

这个程序应该接收7个字符并将它们存储在一个数组然后用户必须搜索一个字符,然后程序将打印该字符的索引,否则,它将打印未找到,这个问题在这里是我的时候输入a b c d e f g然后搜索ie:a它将打印0 not found这里发生了什么?我的调试器被窃听了。所以我不能用它。我希望你理解我的问题。如何使其仅打印用户搜索的字符的索引,如果没有找到该程序将打印not found

1 个答案:

答案 0 :(得分:1)

在下面引用的代码中,如果x != arr[0]if条件在for循环的第一个转弯中将为false,因此会直接转到else部分,意味着打印&#34;未找到&#34;和break

for (int i = 0; i < 7; i++)
{
    if (x == arr[i])
        cout << i << endl;

    else {
        cout <<"Not found";
    break;
    }
}

正确的方式:

bool found = false;
for (int i = 0; i < 7; i++)
{
    if (x == arr[i]) {
        cout << i << endl;
        found = true;
    }
}

if ( !found ) {
    cout <<"Not found";
}