Forum » Programiranje » Leksikografska primerjava dveh stringov? C++
Leksikografska primerjava dveh stringov? C++
TheHijacker ::
Ima mogoče kdo idejo kako lahko dva stringa leksikografsko (po abecedi) primerjaš med seboj in kaj bi moral dobit kot rezultat?
Edino kar meni trenutno pade na pamet je da se ju primerja bo velikosti. Kateri izmed nizov je daljši (ima več črk), samo mislim, da to ni to.
Edino kar meni trenutno pade na pamet je da se ju primerja bo velikosti. Kateri izmed nizov je daljši (ima več črk), samo mislim, da to ni to.
http://www.google.si
sid_dabster ::
String iz C++ standard library ima cel kup overloadanih metod compare(...) za leksikografsko primerjanje stringov, in sicer dveh stringov tipa std::string, std::string z navadnim C stringov, podanim s char*, za primerjanje podstringa s podanim stringom...
Poglej STL help pod basic_string.
Lahko pa se zmeraj uporabis strcmp, kamor podas iteratorja begin() obeh std::stringov oz. dva "navadna C-stringa"
Rezultat pa je zmeraj celo stevilo, ki je 0, ce sta stringa enaka, sicer pa manjsi ali vecji od 0, odvisno od tega, kateri string je pred drugim po abecednem redu.
Poglej STL help pod basic_string.
Lahko pa se zmeraj uporabis strcmp, kamor podas iteratorja begin() obeh std::stringov oz. dva "navadna C-stringa"
Rezultat pa je zmeraj celo stevilo, ki je 0, ce sta stringa enaka, sicer pa manjsi ali vecji od 0, odvisno od tega, kateri string je pred drugim po abecednem redu.
Fallen beyond all grace deeper and deeper
The sound of her own blood dripping
Like sacred tears from a bleeding rose...( Embraced, Within)
The sound of her own blood dripping
Like sacred tears from a bleeding rose...( Embraced, Within)
Zgodovina sprememb…
- spremenilo: sid_dabster ()
Vesoljc ::
tkole?
a, ab, acd, baa, blak, drekec, duh,...
a, ab, acd, baa, blak, drekec, duh,...
Abnormal behavior of abnormal brain makes me normal...
TheHijacker ::
Aha. V bistvu je to primerjanje po abecedi.
Kako pa bi to rešil v C-ju brez uporabe string funkcij kot so npr. strcmp?
Kako pa bi to rešil v C-ju brez uporabe string funkcij kot so npr. strcmp?
http://www.google.si
TheHijacker ::
Na koncu sem rešil takole in dela .
Hvala!
int primerjaj(char *niz1,char *niz2) { int x = 0; while (niz1[x] == niz2[x] && niz1[x] != '\0' && niz2[x] != '\0') { x++; } if (niz1[x] > niz2[x]) { printf("Prvi je večji"); return 1; } else if (niz1[x] < niz2[x]) { printf("Prvi je manjši"); return -1; } else { printf("Oba sta enaka"); return 0; } } void main() { char niz1[200]; char niz2[200]; int kol; printf("Vnesi prvi niz: "); scanf("%s",niz1); printf("Vnesi drugi niz: "); scanf("%s",niz2); primerjaj(niz1,niz2); }
Hvala!
http://www.google.si
Zgodovina sprememb…
- spremenil: Vesoljc ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pomoč pri JaviOddelek: Programiranje | 808 (608) | Spura |
» | asm - vnos stevilk s tipkovniceOddelek: Programiranje | 1281 (1137) | scarymovie |
» | Pomoc v C-juOddelek: Programiranje | 1305 (1217) | rfmw |
» | [C] Narascajoce sortiranje linearnega seznamaOddelek: Programiranje | 1862 (1751) | Jebiveter |
» | problem with c/c++ like programOddelek: Programiranje | 1162 (987) | OwcA |