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
Zeichenketten vergleichen
Moderator: Moderatoren
- beafraid88
- Beiträge: 99
- Registriert: Sa 25. Okt 2008, 17:34
- Wohnort: Aachen/Düsseldorf/Mönchengladbach
-
- Beiträge: 501
- Registriert: Do 19. Jun 2008, 12:12
Re: Zeichenketten vergleichen
weil du vergleiche initialisierst, switch definierst und dann doch vergleiche verwendest.
ob sonst noch was falsch ist, bin ich grad zu faul zu
ob sonst noch was falsch ist, bin ich grad zu faul zu

- beafraid88
- Beiträge: 99
- Registriert: Sa 25. Okt 2008, 17:34
- Wohnort: Aachen/Düsseldorf/Mönchengladbach
Re: Zeichenketten vergleichen
hmm ok xD
also einfach diese switch-funktion weglassen,da strcmp je nach ergebnis sowieso -1,0 oder 1 liefert.
thx ^
also einfach diese switch-funktion weglassen,da strcmp je nach ergebnis sowieso -1,0 oder 1 liefert.
thx ^