C-Strings



  • Hi,
    ich hab mal ne frage zu dem Quelltext:

    #include <iostream>
    using namespace std;
    
    int main(){
      char name[30];
      char* zeiger = name;
    
      cout<<"Wie heißten Sie?"<<endl;
      cin>>name;
      if(name[2] = ){     // Was gehört da rein? Um zu prüfen,
                          // ob der name[2] nicht leer bzw. NULL ist?
                          // if(name[2] = "") ?
        cerr<<"Ihr Name hat keinen 3. Buchstaben!"<<endl;
        exit(1);
      }
      cout<<"Der dritte Buchstabe Ihres Namens ist ein \'"<<zeiger[2]<<"\'"<<endl;
      system("PAUSE");
      return 0;
    }
    


  • if(name[0] == '\0' || name[1] == '\0' || name[2] == '\0')
    

    Du willst ja prüfen, ob der Name weniger als 3 Zeichen hat. Das ist der Fall wenn das Zeichen zum Ende des Strings an 1, 2, oder 3. Stelle des Strings steht.

    Auf Gleichheit prüft man übrigens mit == und nicht mit = (relativ häufiger Fehler). Ansonsten würde ich mir noch std::string ansehen und nicht unbedingt mit rohen C-Strings arbeiten.

    Felix



  • if( strlen(name) < 3)
    

    tut es auch.


Anmelden zum Antworten