hi, wie frage ich in C einen String in der if-Schleife ab? also: if(cstring==???)
siehe www.if-schleife.de ansonsten strcmp, strncmp o.ä. Was ist dein Plan?
in der if wird ein string abgefragt: if(cstring=="abfragestring") nur geht das nicht mit "..." bzw. {'a','b',...}
>> if(cstring=="abfragestring")
int strcmp (const char *s1, const char *s)
liefert :
0 wenn s1 gleich s2
> 0 wenn s1 lexikografisch größer s2
< 0 wenn s1 lexikografisch kleiner s2
also in etwa so
1 | if ( !strcmp(cstring,"abfragestring") ) |
2 | {
|
3 | ...
|
4 | } else { |
5 | ...
|
6 | }
|
Bzw. genau genommen kannst du schon Strings vergleichen:
1 | if( "abc" == "def" ) ... |
Das ist syntaktisch korrekt, vergleicht aber nicht die Inhalte der Strings, sondern nur die Anfangsadressen. Also wäre die Antwort eigentlich: ja, du kannst sie vergleichen; das wirst du aber nicht wollen.
GUI schrieb: > kann man nicht direkt sring arrays vergleichen? Doch, aber nur Zeichen für Zeichen und nichts anderes mach strcmp:
1 | char strcmp(char *s1, char *s2){ |
2 | |
3 | while(*s1 && *s2 && *s1 == *s2){ |
4 | s1++; s2++; |
5 | }
|
6 | return *s1 - *s2; |
7 | }
|
Du kannst jede Stelle im String einzeln kontrollieren.
1 | char szString = "abfragestring\0"; |
2 | |
3 | if ( cstring[0] == 'a' ) |
4 | {
|
5 | ...
|
6 | }
|
7 | |
8 | if ( cstring[14] == '\0' ) |
9 | {
|
10 | ...
|
11 | }
|
Ob das Sinn macht, kommt auf deinen genauen Einsatz an...
Weils mal wieder nötig ist: DU MÖCHTEST UNBEDINGT EIN C-BUCH LESEN! Da stehen alle Fragen, die du hier gestellt hast systematisch und vollständig erklärt drin.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.