Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Strings » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
David_pb

Die Funktion strcmp vergleicht beide C-Strings Alphabetisch. Wenn str1 kleiner als str2 ist wird -1 zurückgegeben, ist str1 größer als str2 wird 1 zurückgegeben sind beide C-Strings gleich wird 0 zurückgegeben.

Hatte mal was geschrieben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
int string::cmp( const char* s1, const char* s2 )
{
	int c1, c2, d;

	assert( s1 != 0 && s2 != 0 );

	do
	{
		c1 = *s1++; // Naechstes Zeichen von s1
		c2 = *s2++; // Naechstes Zeichen von s2
		d  = c1 - c2; // Differenz der Zeichen

		if ( d ) // Wenn Differenz besteht sind die Strings ungleich
		{
			return ( cry_math::sign_bit_not_set( d ) << 1 ) - 1;
		}
	} while( c1 );

	return 0;
}
Celtic_Princess Strings

Man soll ein Programm schreiben, das zwei Strings vergleicht, und die dann 0 oder ungleich Null zurückgibt.
Das soll mit strcmp geschehen und zeigen, ob String kleiner, gleich oder groesser ist.

char str1 20;
char str2 20;

printf("Bitte ersten String eingeben: ");
scanf("%s", &str1);
printf("Bitte geben sie den zweiten String ein: ");
scanf("%s", &str2);

if(strcmp(str1, str2)==0)
printf(""%s %s are the same", str1, str2);

else if(strcmp(str1,str2)<0)
printf("%s less than %s", str1, str2);

else
printf("%s greater than %s", str1, str2);


Hier versteh ich nicht wie strcmp vergleicht, im Buch steht das erste unterschiedliche Zeichen der beiden Strings, und dann welches groesser ist.
Aber damit kann ich nichts anfangen.
Ich habe bei else if mal das kleiner Null umgedreht und den Text entsprechend geändert, also das bei else dann less than steht, aber das ging nicht, dann war die Ausgabe falsch.
Wie funktioniert denn diese strcmp Block?