Zeichenketten vergleichen
Verfasst: Fr 21. Jan 2011, 21:44
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
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