PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : string vergleichen



pebisoft
14.05.2005, 18:02
ich habe mit uart 4 zeichen in char s[4] eingelesen "SIGNAL(SIG_UART_RECV)".
wie kann ich den string "s" vergleichen.
geht es, wenn man als vergleich ein text in anführungszeichen setzt,

if (s=="wert")

mfg pebisoft

Pascal
14.05.2005, 18:08
entweder du vergleichst char für char oder verwendest die Funktion strcmp aus der stdlib.h (ob die Namen exakt stimmen, weiß ich nicht, da ich im Moment nicht daheim bin)
so wie du es vorgeschlagen hast, dürfte es nicht gehen

mbod77
14.05.2005, 22:28
Huhu,

die strcmp gehört zur sting.h und vergleicht Null-Terminierende Strings.Also sollte Deine Variable s eine s[5] sein damit das \0 noch mit reinpasst.

strcmp liefert im Falle von Gleichheit eine 0 als Ergebniss

if(strcmp(s, "wert") == NULL)
.....


Grüßle Jochen

pebisoft
15.05.2005, 11:31
hallo, klasse. schönen dank.
jetzt muss ich erst einmal schauen welche "\..." als anhängsel noch gibt für bestimmte ausgaben.
mfg pebisoft

PicNick
15.05.2005, 11:53
Hallo, Peter. In den meisten Fällen wirst du mit
"\r\n" ---> neue Zeile
"\t" ---> tabellensprung ( ca 8 Zeichen leer )
auskommen.

lekro
15.05.2005, 14:55
> strcmp liefert im Falle von Gleichheit eine 0 als Ergebniss

> if(strcmp(s, "wert") == NULL)

Wieso vergleichst du mit NULL, wenn strcmp doch 0 liefert?

Naja, warum einfach, wenn's auch kompliziert geht... ;)
Wenn du das unbedingt so machen möchtest, mehr Schreibarbeit hat noch keinem geschadet. Höchstens der Übersichtlichkeit. :)

mbod77
15.05.2005, 16:24
Huhu nochmal

>Wieso vergleichst du mit NULL, wenn strcmp doch 0 liefert?
Naja, damit das if ausgeführt wird ;-) ich könnte auch auf ungleichheit überprüfen oder, oder, oder..

>Wenn du das unbedingt so machen möchtest, mehr Schreibarbeit hat noch keinem geschadet. Höchstens der Übersichtlichkeit.
So wie ich den Satz verstehe willst mir sagen das das mit dem Vergleich auf NULL unübersichtlicher sein soll? Wenn demm so ist, dann sehe ich das anderst.
Jedoch,die Geschmäcker sind ja unterschiedlich ;-)

Mann kann das auch mit
!strcmp(s, "wert")?printf("gleich\n"):printf("ungleich\n");
machen, aber ob das dann übersichtlich ist ??

Grüßle Jochen

pebisoft
15.05.2005, 16:46
hallo mbod77, dein vorschlag ist klasse gewesen. geht wunderbar.
mfg pebisoft