在函数C中传递并修改char array [] []

时间:2016-11-28 08:30:38

标签: c arrays string

我有一个char数组[] [],我想在void函数中使用它并修改一些值。

char teams[MAX_TEAMS][MAX_NAME_LENGTH + 1] = { "Olympiakos", "P.A.O.K.", "Panathinaikos", "Panionios"};

(MAX_TEAMS和MAX_NAME_LENGTH是程序开头的#defined整数。 我是使用void函数来修改数组。我如何定义函数,我如何从main传递数组?我如何在函数中使用它?

void print_teams(char [][]);  (?????)

int main(){
    char teams[MAX_TEAMS][MAX_NAME_LENGTH + 1] = { "Olympiakos", "P.A.O.K.", "Panathinaikos", "Panionios"};
    print_teams(teams);
}

void print_teams(char teams[MAX_TEAMS][MAX_NAME_LENGTH+1]){
     strcpy(teams[0], "Milan FC");  
}

I am looking for a way of declaration so that any modifies inside the void function to be saved at array teams.
Thanks in advance!

2 个答案:

答案 0 :(得分:2)

函数teams[0]内部是一个数组。您无法分配给数组,只能复制

strcpy(teams[0], "Milan FC");

另请注意使用 double 引号。

最后,对于函数原型,只需复制函数定义的声明。

答案 1 :(得分:0)

最佳方式:

void print_teams(char [][MAX_COL_SIZE]);

您可以在以下链接中找到更多信息: http://c-faq.com/aryptr/pass2dary.html

并使用strcpy(teams[0],"Real Madrid");而不是使用“=”