Seite 1 von 1

Zeichenketten vergleichen

Verfasst: Fr 21. Jan 2011, 21:44
von beafraid88
Hey Leute,

Worum es geht könnt ihr euch ja denken.
Es sollen beide Strings miteinander verglichen werden:
Falls string1 lexikalisch größer als string2, soll 1 zurückgegeben werden.
Falls string1 lexikalisch gleich string2,soll 0 zurückgegeben werden,
ansonsten soll -1 zurückgegeben werden.

1.)Warum funktioniert mein Code nicht:

#include <stdio.h>
#include <string.h>
int vergleiche (char* ls,char* rs) {

int res;

res= strcmp(ls,rs);

switch(res) {
case 0: return 0;
case 1: return 1;
case -1: return -1;

}

}


int main() {
int res;
char ls[]="Auto";
char rs[]="Biber";
printf("Das Ergebnis lautet %d",vergleiche(ls,rs));

getchar();
return 0;

}


2. Wenn ich Strings manuell(also ohne strcmp) miteinander vergleichen möchte,wie lautet dann die Vergleichsfunktion?
Müsste ja iwas mit Arrayindex sein,also iwie
if (wort1<wort2) return 1; /* wort1= Auto , wort2=Biber */
if (wort1=wort2) return 0;
else return -1;



Gruß Kili

Gruß Kilian

Re: Zeichenketten vergleichen

Verfasst: Sa 22. Jan 2011, 13:46
von Darkmaster
weil du vergleiche initialisierst, switch definierst und dann doch vergleiche verwendest.
ob sonst noch was falsch ist, bin ich grad zu faul zu :D

Re: Zeichenketten vergleichen

Verfasst: Di 25. Jan 2011, 23:29
von beafraid88
hmm ok xD
also einfach diese switch-funktion weglassen,da strcmp je nach ergebnis sowieso -1,0 oder 1 liefert.



thx ^