Zeichenketten vergleichen

Moderator: Moderatoren

Antworten
Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

Zeichenketten vergleichen

Beitrag von beafraid88 » 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

Darkmaster
Beiträge: 501
Registriert: Do 19. Jun 2008, 12:12

Re: Zeichenketten vergleichen

Beitrag von Darkmaster » Sa 22. Jan 2011, 13:46

weil du vergleiche initialisierst, switch definierst und dann doch vergleiche verwendest.
ob sonst noch was falsch ist, bin ich grad zu faul zu :D

Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

Re: Zeichenketten vergleichen

Beitrag von beafraid88 » Di 25. Jan 2011, 23:29

hmm ok xD
also einfach diese switch-funktion weglassen,da strcmp je nach ergebnis sowieso -1,0 oder 1 liefert.



thx ^

Antworten

Zurück zu „Info I“