将结构中的字符串与数组中的字符串进行比较

时间:2013-11-21 11:41:05

标签: struct

我有一个结构数组,结构中的一个元素是一个字符串,我需要将这些字符串与12个字符串数组中的其他字符串进行比较。 strcmp似乎对我不起作用。我知道我需要制作单独的函数来比较字符串并将值作为bool返回,但是无法弄清楚如何使比较函数工作。

结构

  typedef struct{
     char *hometeam[Max_number_of_chars], *awayteam[Max_number_of_chars];
     int  playround, date_day, date_month, date_year, 
          time_hour, time_minute, home_score, away_score, crowd_thousand,
          crowd_hundred; 
  } match;

字符串数组

    char *teams[Number_of_teams] = {"AGF","AAB","SDR","RFC",
                                    "EFB","BIF","SIF","OB",
                                    "FCK","FCM", "ACH","FCN"};

我需要compare_function的行

    if(compare_names(all_games[i].hometeam, teams[j])==0) {//crazy stuff}

编辑:我需要帮助的是制作将* teams [j]的字符串值与all_games [i] .hometeam中的字符串值进行比较的函数。但我不知道如何将struct all_games [i] .hometeam的特定部分传递给compare_function,我希望它是一个char字符串。

1 个答案:

答案 0 :(得分:0)

// Assuming  char *teams[Number_of_teams] is globally defined.
int find_match(struct match)
{
   for(i=0; i < Number_of_teams; i++){
       if(strcmpi(match.hometeam, teams[i]) == 0){
           return i;
       }
   }
   return -1;
}

您想要做的事情的逻辑流程尚不清楚,但您可以尝试上述内容。