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![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
ob sonst noch was falsch ist, bin ich grad zu faul zu
![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
- 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 ^