如何将数组中的字符串传递给函数?
我想将"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);
}
答案 0 :(得分:2)
让print
取char const *
而不是char
。然后,从通话中删除*
:
print(ships_name[index]);
答案 1 :(得分:0)
您需要使您的打印功能获取指向字符的指针,而不是字符。这是因为在C中,字符串只是一个包含一些由空字节终止的字符的内存位置。
您应该将print的签名更改为
void print(char *ship_names)
答案 2 :(得分:0)
我认为不应该取消引用指向shipsname [index]字符串的指针,而应该使用print(ships_name[index])
传递字符串指针本身,该指针将指针传递给字符串。然后你的方法必须采用char *。