1

配列から関数に文字列を渡すにはどうすればよいですか?"Battleship"関数print()などに文字列を渡して出力させたい"Where would you like to place the Battleship?"

#include <stdio.h>

void print(char ship_names);

int main (void)
{
    int index = 0;
    char ships_name[5][21]= { "Aircraft Carrier (5)", "Battleship (4)", "Submarine (3)", 
                              "Cruiser (3)", "Destroyer (2)"};

    for(index = 0; index < 5; index++)
        print(*ships_name[index]);

return 0;
}

void print(char ship_names)
{
    printf("Where would you like to place the %s?\n", ship_names);
}
4

3 に答える 3

2

単一printの の代わりに を取りましょう。次に、コールからをドロップします。char const *char*

print(ships_name[index]);
于 2012-10-28T23:13:59.770 に答える
0

印刷関数が文字ではなく文字へのポインタを取るようにする必要があります。これは、C では、文字列はヌル バイトで終了するいくつかの文字を含む単なるメモリ位置であるためです。

print の署名をに変更する必要があります

void print(char *ship_names)
于 2012-10-28T23:14:21.187 に答える
0

shipname[index] 文字列へのポインターを逆参照する代わりに、文字列print(ships_name[index])へのポインターを渡す文字列ポインター自体を渡す必要があると思います。メソッドは char * を取る必要があります。

于 2012-10-28T23:16:25.833 に答える