c++ - 如何让这个程序打印数组中搜索到的字符的索引,否则它会打印找不到?

标签 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 然后搜索即:a 它将打印 0 not found 这里发生了什么?我的调试器有问题。所以我不能使用它。我希望你明白我的问题。如何让它只打印用户搜索的字符的索引,如果没有找到程序将打印 not found

最佳答案

在下面引用的代码中,if x != arr[0]if 条件在 for 的第一轮中将为假> 循环,从而直接转到else部分,即打印“Not found”和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";
}

关于c++ - 如何让这个程序打印数组中搜索到的字符的索引,否则它会打印找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726617/

相关文章:

c++ - 从 C/C++ 调用 python 方法,并提取其返回值

C++ - 完全挂起 Windows 应用程序

c++ - std::thread 没有按预期立即启动 (c++11)

c++ - 强制 clang 在此 C++ 代码片段上生成编译错误

c++ - C编译器??)替换

c++ - 使用指针算法计算类型大小的替代方法

c++ - Python 的 file.read(2) 在 C++ 中有模拟吗?

c++ - 设计一个快速的 "rolling window"文件阅读器

c++ - OpenGL 程序不会显示任何对象?

c++ - 在 C++ 中声明二维数组