2013-11-21 21 views
0

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

的结构

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字符串。

+0

请在发布之前对代码进行格式化。 – erbdex

回答

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; 
} 

你想要做什么的逻辑流程并不清楚,但你可以尝试像上面这样的东西。

+0

好吧,也许我的逻辑不够清楚,但现在问题归结为我不知道如何将'all_teams [i] .hometeam'作为char *类型传递给我的函数,以便比较字符串在all_teams和来自团队的字符串[j] – user3016762

+0

你想要函数只接受字符串而不是结构体? Change-find_match(char * team)。比较现在变成 - strcmpi(团​​队,团队[i]) – erbdex

+0

是的,我只想接收结构的字符串部分,但我也希望团队[i]的特定字符串作为输入以及比较函数,因为我已经有一个循环遍历了另一个函数中的i和j,它们应该调用比较函数。在输入之前,我一直在编译器期望指定符的地方出现错误 – user3016762