chtěl bych Vás poprosit o pomoc s následujícím prográmkem psaném v C, jež má porovnávat dva zadané textové řetězce dle abecedy.
Má to být obdoba funkce strcmp z knihovny string.h akorát s českými znaky.
Mockrát díky za pomoc.
Mám následující nefunkční kód:
Kód: Vybrat vše
int strporovnej(char str1[], char str2[]) {
char abc[43] = {'a', 'á', 'b', 'c', 'č', 'd', 'ď', 'e', 'é', 'ě', 'f', 'g', 'h', 'ch', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'ň', 'o', 'ó', 'p', 'q', 'r', 'ř', 's', 'š', 't', 'ť', 'u', 'ú', 'ů', 'v', 'w', 'x', 'y', 'ý', 'z', 'ž', '\0'};
int i, j, k = 0;
while (str1[j] == str2[k] && (str1[j] != '\0' || str2[k] != '\0')) {
j++; //kdyz jsou pismenka obou retezcu stejna, posune se o jeden znak a porovnava se dal
k++;
}
if (str1[j] != '\0') {
while (abc[i] != '\0')
{
if (str1[j] == abc[i])
{
j = i;
break;
} else i++;
}
} else if (str2[k] == '\0') { // kdyz i str2 ma \0 to znamena ze jsou stejne
return 0;
} else return -1;
i = 0;
if (str2[k] != '\0') {
while (abc[i] != '\0') {
if (str2[k] == abc[i]) {
k = i;
break;
} else i++;
}
}
if (j < i) return -1;
else return 1;
}
