尝试执行索引搜索字符串

时间:2011-10-26 23:55:10

标签: c++ visual-c++

我试着编写一个代码,该代码应该允许我搜索我在提示时输入的数组字符串。程序要求用户输入一定数量或数据,然后要求用户执行搜索。我很难搜索输入。我可以用整数做这个,但现在请求帮助。你会怎么做呢。

#include <iostream>

using namespace std;

void contactArray(string a[], int size);

string search(const string a[], int size, string find);

int main( )
{
    cout << "This program searches a list .\n";
    const int arraySize = 3;
    string a[arraySize];

    contactArray(a, arraySize);

    string find;
    cout << "Enter a value to search for: ";
    cin >> find;
    string lookup = search(a, arraySize, find);
    if (lookup == " ")
        cout << find << " is not in the array.\n";
    else
        cout << find << " is element " << lookup << " in the array.\n";
    return 0;
}

void contactArray(string a[], int size)
{
    cout << "Enter " << size << " list.\n";
    for (int index = 0; index < size; index++)
        cin >> a[index];
}

int search(const string a[], int size, string find)
{
    string index = "";
    while ((a[index[3]] != find) && (index < size))
        cout<<"try again"<<endl;
    if (index == find)        
        index = "";
    return index;
    cout<<"hgi";
}

3 个答案:

答案 0 :(得分:1)

你可以用整数做到吗?使用整数执行此操作,使用字符串调用该函数,以及在出现cannot convert string to int编译器错误的任何位置时,将单词int更改为string。它应该几乎完全相同。

答案 1 :(得分:1)

而不是

int search(const string a[], int size, string find)
{
    string index = "";
    while ((a[index[3]] != find) && (index < size))
        cout<<"try again"<<endl;
    if (index == find)        
        index = "";
    return index;
    cout<<"hgi";
}

尝试类似

的内容
int search(string a[], int size, string find)
{
      int index = -1;
      for(int i=0;i<size;i++)
      {
         if(a[i] == find)
         {
             index = i;
             break;
         }
      }
      return index; 
}

如果函数返回-1,则找不到该字符串。任何其他返回是数组中'find'字符串所在的位置。

答案 2 :(得分:0)

使用for循环迭代数组并检查值是否在数组中。可能有一个C ++函数来执行此cstdlib,我知道.Net内置了这个。