2010-11-29 23 views
0

我想*兩個char之間進行比較,所以我做到這一點使用strcmp, 看,在調試模式下,在雙方的strcmp的char *獲取相同的值,但仍然是 從調試器#C的strcmp()不工作,因爲它應該

這裏PIC:不會返回0,並躍過如果()條件,而不是進入它的 http://img405.imageshack.us/img405/5218/111fi.jpg

Company FindCompany(CompanyL pcompanyList, int companyIdentityDigit) 
{ 
    Company companyFound; 
    char *psearchWord; 
    psearchWord = (char*)malloc(10*sizeof(char)); 

    switch(companyIdentityDigit) { 
     case 0: 
      strcpy(psearchWord , "Pelephone"); 
      break; 
     case 2: 
      strcpy(psearchWord , "Cellcom"); 
      break; 
     case 4: 
      strcpy(psearchWord , "Orange"); 
      break; 
    } 

    while(pcompanyList->next != NULL) { 
     if(strcmp(pcompanyList->thisCompany->pcompany , psearchWord) == 0) { 
      free(psearchWord); 
      return pcompanyList->thisCompany; 
     } 
     pcompanyList = pcompanyList->next; 
    } 
    free(psearchWord); 
    return NULL; 
} 

爲什麼是它?

+0

你用什麼值調用它。 – 2010-11-29 02:02:31

回答

0

嘗試一個簡單的for循環打印出的文字pcompanyList-> thisCompany-> pcompany一次一個:

for (int x = 0; x < strlen(pcompanyList->thisCompany->pcompany); x++) 
    printf("%c ", pcompanyList->thisCompany->pcompany[x]); 

你可以這樣做或檢查每個字符串的長度,以確保有AREN當您檢查字符串時,不會在調試器中顯示隱藏的字符。

相關問題