Forum: PC-Programmierung Wie string in C abfragen


von GUI (Gast)


Lesenswert?

hi,
wie frage ich in C einen String in der if-Schleife ab?

also:


if(cstring==???)

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

siehe www.if-schleife.de

ansonsten strcmp, strncmp o.ä.
Was ist dein Plan?

von GUI (Gast)


Lesenswert?

in der if wird ein string abgefragt:

if(cstring=="abfragestring")

nur geht das nicht mit "..." bzw. {'a','b',...}

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

>> 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
 }

von GUI (Gast)


Lesenswert?

kann man nicht direkt sring arrays vergleichen?

von Klaus W. (mfgkw)


Lesenswert?

nicht C.

in C++ kann man std::string vergleichen.

von Klaus W. (mfgkw)


Lesenswert?

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.

von Timmo H. (masterfx)


Lesenswert?

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
}

von Rene S. (Firma: BfEHS) (rschube)


Lesenswert?

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...

von Klaus (Gast)


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

.. die aus dem anderen Thread übrigens auch.

Der andere Klaus

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
Noch kein Account? Hier anmelden.