0
2 개의 char *을 비교하고 싶습니다. strcmp에서 처럼 보이고, 디버깅 모드에서 strcmp의 char *가 같은 값을 얻고 여전히 이됩니다. 못해 들어가는 대신 경우() 상태 위에 0을 반환하고, 점프 :#c strcmp()가 정상적으로 작동하지 않습니다.
여기PIC를 디버거 : 왜 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;
}
이다 ??
for (int x = 0; x < strlen(pcompanyList->thisCompany->pcompany); x++)
printf("%c ", pcompanyList->thisCompany->pcompany[x]);
당신은이 작업을 수행하거나 각 문자열의 길이를 확인할 수있을 때로 믿을 수 있는지 확인 : 루프의 문자를 인쇄 할 수
당신은 어떤 가치를 부르고 있습니다. –
문자열이 모두 ASCII입니까? Cellcom의 m이 모두 null 인 후 바이트가 확실합니까? – jtdubs
오른쪽 제임스 ... 나는 그것을 고칠거야,하지만 문제가되지 않습니다 –