Jag har kommit längre i felsökningen och gjort en egen metod som jämför strängarna med varandra char för char.
//***** STRING_CMP *****
int string_cmp(char str1[], char str2[]) {
int i=0,j=0;
while((str1[i]!='\0') && (str2[j]!='\0')) {
printf("\n%d ::: %d", toascii(str1[i]), toascii(str2[j]));
if(toascii(str1[i]) < toascii(str2[j])) {
printf(" = -1\n");
return -1;
}
if(toascii(str1[i]) > toascii(str2[j])) {
printf(" = -1\n");
return 1;
}
i++;
j++;
}
printf(" = 0\n");
return 0;
}
Detta verkar fungera...ett tag iaf sen börjar det hända konstiga saker...Utskriften vid jämförelse blir då så här:
//-------------------------------------------------
koll: 656
A Farewell to Arms ::: A Fish Called Wanda
84 ::: 84
104 ::: 104
101 ::: 101
32 ::: 32
83 ::: 80 = -1
koll: 657
A Farewell to Arms ::: A Fish Called Wanda
84 ::: 84
104 ::: 104
101 ::: 101
32 ::: 32
84 ::: 83 = -1
koll: 658
2001: A Space Odyssey ::: A Fish Called Wanda
84 ::: 84
104 ::: 104
101 ::: 101
32 ::: 32
83 ::: 83
105 ::: 105
108 ::: 120 = -1
//--------------------------------------------
Vad kan detta bero på?