0

だからここに私のコードがあります、

#include <iostream>
#include <string>

using namespace std;

int main()
{
const int NUM_NAMES = 20;
string names [NUM_NAMES] = {"Collins, Bill", "Smith, Bart" , "Allen, Jim", "Griffin, Jim", "Stamey, Marty", "Rose, Geri","Taylor, Terri",
    "Johnson, Jill", "Allison, Jeff", "Looney, Joe" , "Wolfe, Bill", "Rutherford, Greg", "Javens, Renee","Harrison, Rose","Setzer, Cathy",
    "Pike, Gordon","Holland, Beth"};
string smallest;
int minindex;
void displayNames (string[NUM_NAMES], int);



cout<<"Here are the unalphabetized names";
****displayNames(names[NUM_NAMES], NUM_NAMES);****

for(int i=0; i < (NUM_NAMES -1); i++)
{
    minindex=i;
    smallest=names[i];
    for(int j = (i+1); j<NUM_NAMES; j++)
    {
        if(names[j]<smallest)
        {
            smallest = names[j];
            minindex = j;
        }
    }
    names[minindex] =names[i];
    names[i] = smallest;

    system("pause");
    return 0;
}
}

void displayNames(string names[], int NUM_NAMES)
{
    for (int i =0; i<NUM_NAMES; i ++)
{
    cout<<names[i]<<endl;
}
}

4 つのアスタリスクで囲まれた行は、ビルドしようとしたときにエラー コードが参照する行です。私の実際のコードにはアスタリスクはありません。エラーの修正方法がわかりません

Intellisense: no suitable conversion function from "std::string" to "std::string *" exists

string to int検索のページとページを調べましたが、すべての質問/回答は、またはstring to charなどからの変換関数を参照しているようstring to stringです。

ちなみに、これらをアルファベット順に並べる必要もありますが、現在持っているものは機能しますか? 私の教授は、コンピューターは文字列の char 値を評価するべきだと言っていた。

4

2 に答える 2

2

これは間違っています:

displayNames(names[NUM_NAMES], NUM_NAMES);

これは正しいものです:

displayNames(names, NUM_NAMES);
于 2013-04-19T15:33:23.773 に答える
0

名前[NUM_NAMES]ではなく、名前を関数に送信する必要があります。names は配列または文字列ポインターですが、names[NUM_NAMES] は文字列です。関数は文字列ポインターを取ります。

std::String[] は std::String* と同じです

于 2013-04-19T15:33:23.987 に答える