Pomoc s porovnáváním českých slovíček C

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
baklazan
Nováček
Nováček
Registrován: 08. lis 2012

Pomoc s porovnáváním českých slovíček C

Příspěvek od baklazan »

Dobrý večer,
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;
}
Odpovědět

Zpět na „Programování a web“