C++ 在数组中搜索时间

C++ 在数组中搜索时间,c++,arrays,search,character,C++,Arrays,Search,Character,结果应该是“萨比特”、“萨莉”和“巴黎”。 所以我不知道如何修改代码 #include <iostream> #include <cstdlib> #include <time.h> using namespace std; int main() { char q; int i = 0; cout << "bir harf gir" << endl; cin >> q; string

结果应该是“萨比特”、“萨莉”和“巴黎”。 所以我不知道如何修改代码

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

int main()
{
    char q;
    int i = 0;
    cout << "bir harf gir" << endl;
    cin >> q;
    string ad[] = {"sabit", "two", "sally", "water", 
                   "mike", "alice", "paris", "david", "martin"};

    for (int i = 0; i < 7; i++)
    {
        if (ad[i][0] == q)
        {
            cout << ad[i] << endl;
        }
    }
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
charq;
int i=0;
coutq;
字符串ad[]={“萨比特”,“两个”,“萨莉”,“水”,
“迈克”、“爱丽丝”、“巴黎”、“大卫”、“马丁”};
对于(int i=0;i<7;i++)
{
if(ad[i][0]==q)
{

cout代替for循环,您的意思似乎是

for ( const auto &s : ad )
{
    if ( s.find( q ) != std::string::npos ) std::cout << s << '\n';
}
如果不希望遍历所有数组,而是遍历其部分,则可以使用普通的for循环,而不是基于范围的for循环

for ( std::string::size_type i = 0; i < 7; i++ )
{
    if ( ad[i].find( q ) != std::string::npos ) std::cout << ad[i] << '\n';
}
for(std::string::size_type i=0;i<7;i++)
{

如果(ad[i].find(q)!=std::string::npos)std::cout而不是for循环,那么您的意思似乎是

for ( const auto &s : ad )
{
    if ( s.find( q ) != std::string::npos ) std::cout << s << '\n';
}
如果不希望遍历所有数组,而是遍历其部分,则可以使用普通的for循环,而不是基于范围的for循环

for ( std::string::size_type i = 0; i < 7; i++ )
{
    if ( ad[i].find( q ) != std::string::npos ) std::cout << ad[i] << '\n';
}
for(std::string::size_type i=0;i<7;i++)
{

如果(ad[i].find(q)!=std::string::npos)std::cout您只检查第一个字符。您可以运行另一个循环来检查所有字符

for(int i = 0; i<7; i++)
{
    for(int j =0; j<ad[i].size(); j++){
        if(ad[i][j]==q){
            cout<<ad[i]<<endl;
            break;
        }
    }
}

for(int i=0;i您只检查第一个字符。相反,您可以运行另一个循环来检查所有字符

for(int i = 0; i<7; i++)
{
    for(int j =0; j<ad[i].size(); j++){
        if(ad[i][j]==q){
            cout<<ad[i]<<endl;
            break;
        }
    }
}
for(int i=0;i
if(ad[i][0]==q){
cout
if(ad[i][0]==q){

coutIt工作正常如果我需要输入两个或多个字符怎么办我如何修改代码?我试过这样做“如果((strchr(ch,t)!=NULL)和((strchr(ch,q)!=NULL)),但可能还有另一种方法…工作正常如果我需要输入两个或多个字符怎么办?我怎么修改代码?我试过这个…”如果((strchr(ch,t)!=NULL)和((strchr(ch,q)!=NULL))“但可能还有另一种方法。。
#include<iostream>
#include<string>
#include<bits/stdc++.h>
using namespace std;

int main()
{
char q;
cin>>q;
string ad[]={"sabit","two","sally","water","mike","alice","paris","david","martin"};
for(int i=0;i<sizeof(ad)/sizeof(ad[0]);i++)
{   
int len=ad[i].length();
char ch[len+1];
strcpy(ch, ad[i].c_str());
if(strchr(ch,q)!=NULL)
    cout<<ad[i]<<endl;
}
return 0;
}