我可以将字符串传递给函数

时间:2012-10-28 23:11:34

标签: c arrays string function

如何将数组中的字符串传递给函数? 我想将"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);
}

3 个答案:

答案 0 :(得分:2)

printchar const *而不是char。然后,从通话中删除*

print(ships_name[index]);

答案 1 :(得分:0)

您需要使您的打印功能获取指向字符的指针,而不是字符。这是因为在C中,字符串只是一个包含一些由空字节终止的字符的内存位置。

您应该将print的签名更改为

void print(char *ship_names)

答案 2 :(得分:0)

我认为不应该取消引用指向shipsname [index]字符串的指针,而应该使用print(ships_name[index])传递字符串指针本身,该指针将指针传递给字符串。然后你的方法必须采用char *。