在字符串 C++ 中查找索引

Finding Index in string C++

本文关键字:查找 索引 C++ 字符串      更新时间:2023-10-16
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int contain(vector<string> &s_vector, string check)
    {
    cout<<"Input a string to check: ";
    cin>>check;
    if(s_vector=check) 
     return find(&s_vector);
    else
    return -1;
    }
int main(){
    vector<string>s_vector;
    cout<<"Input the size of string vector: ";
    int size;
    cin>>size;
    cout<<"Input "<<size<<"strings: n"; 
    cin>>s_vector[size];
    cout<<"Strings in the string vector: ";
    for(int i=0; i<s_vector.size(); i++)
    cout<<s_vector[i]<<" ";
    contain(s_vector, string check);
    return 0;
} 

我正在尝试制作一个代码,您可以在其中找到字符串的索引。例如,输出如下所示:

Input the size of string vector: 3
Input 3 strings:
asd
lkj
qere
Input a string to check: lkj
1
但是int contain

~section中似乎有一些错误,如果我取出int contain~部分并运行程序,每当我尝试输入字符串时,它都会一直说"运行已停止"。我是C++新手,所以我真的可以使用您的帮助,谢谢。

包含函数可能是什么样子的:

int contain(const vector<string>& s_vector)
{
    cout << "Input a string to check: ";
    string check;
    cin >> check;
    for (int i = 0; i < s_vector.size(); i++)
        if (s_vector[i] == check)
            return i;
    return -1;
}

无需将局部变量check传递给函数。我们使用运算符 [] 逐个比较向量内的字符串。主要看起来像这样:

int main()
{
    vector<string>s_vector;
    cout<<"Input the size of string vector: ";
    int size;
    cin>>size;
    cout << "Input " << size << "strings: n"; 
    for (int i = 0; i < size; i++)
    {
        string str;
        cin >> str;
        s_vector.push_back(str);
    }
    cout<<"Strings in the string vector: ";
    for(int i=0; i<s_vector.size(); i++)
    cout<<s_vector[i]<<" ";
    int i = contain(s_vector);
    cout << "Index: " << i;
    return 0;

}