Ersten Buchstaben ermitteln?



  • Wie ihr ja wisst Programmiere ich einen Chat. Dort kann man auch befehle mittels / eingeben, also /whisper "Username" "nachricht" flüstert man etwas oder mit /Join "Channel" Wechselt man den Chatraum.

    Ich hab das Problem, dass wenn ich so einen befehl eingebe, dieser auch in mein Chatfenster eingetragen wird, dies will ich aber nicht.

    Ich will das so machen:

    if erster Buchstabe == "/"
    {
    }
    else
    {
    // Nachricht in Listenfeld hinzufügen.
    m_strChat += m_strUsername +": " +m_strMessage +"\r\n";
    // Variablen mit Steuerelementen synchronisieren
    UpdateData(FALSE);
    }
    

    wie ermittel ich den ersten Buchstaben?

    Danke im Voraus



  • Hi ...

    Wenn Du einen CString verwendest kannst Du
    dieses Zeichen "/" mit (1) Left überprüfen.
    Du kannst aber auch (2) Find benutzen um die
    Befehle zu finden die Du nicht mitgesenet
    haben möchtest.

    (1) Beispiel:
    
    if ("/" == m_strMessage.Left(1))
    {
    /* Befehl entfernen Message senden */
    }
    else
    {
    /* Message senden */
    }
    
    (2) Beispiel:
    
    in findezeichen=0;
    
    if (findezeichen=m_strMessage.Find("/DeinBefehl") ||
        findezeichen=m_strMessage.Find("/naechsterBefehl")..... == -1)
    {
       /* alles senden */
    }
    else
    {
       /* Befehl trennen von Message und senden */
    }
    

    hoffe es hilft Dir
    Gruß
    Klaus



  • Jau das hattes, danke es funktioniert 🙂



  • Man kann aber auch mit [] auf das gewünschte Element zugreifen:

    CString sWort = "Auto";
    
    CString sersterBuchstabe = sWort[0];  //liefert "A" zurück
    

    Per Schleifen kann man dann auch suchen lassen.

    Happosai


Anmelden zum Antworten