#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/