- LiFePO4 Speicher Test         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Frage / Problem zu C++ und strings

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Ort
    Aachen
    Alter
    38
    Beiträge
    100

    Frage / Problem zu C++ und strings

    Hallo,
    ich habe hier ein kleines Problem, ich bekomme über eine Netzwerkverbindung mit recv ein char Array (Länge 32) rein und nun will ich dieses char Array auf bestimmte Werte überprüfen, d.h. ich will gucken, ob da nur ein a oder so drinsteht, oder ob da ein Befehl drin ist.

    ich habe da schon mal was mit strcmp probiert, aber das läuft nicht so wie ich will, eigentlich gar nicht.

    Mit freundlichen Grüßen

    Stoneman

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Wenn Du C++ hast, kannst Du doch mit dem Typ string arbeiten, dann kann man in etwa so machen:

    Code:
    string strname = "hoppala";
    if (strname.substr(3,1) == "a") {
       // huch ein a ist da !
    }
    strcmp geht zwar auch, ist ansonsten für C ohne +

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Ort
    Aachen
    Alter
    38
    Beiträge
    100
    jo das ist aber eignetlich nicht das was ich suche, ich brauche etwas was mir
    Code:
    while ((recvMsgSize = sock->recv(echoBuffer, RCVBUFSIZE)) > 0) {
           // Echo message back to client
        sock->send(echoBuffer, recvMsgSize);
    }
    hier den vergleich erlaubt ob in echoBuffer nur ein q oder nur eine gesuchte Zeichenfolge drin steht (natürlich noch steuerzeichen), d.h.
    Code:
    echoBuffer = "q" -> erkennen
    echoBuffer = "quer" -> nichterkennen
    das klappt mit strcomp nicht, wahrscheinlich aber auch deshalb, weil ich nicht weiß, was Telnet für steuerzeichen sendet.

    Mfg

    Stoneman

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    wenn du Befehle nach einem festgelegten Protokoll suchst, kannst du das Array in einer Schleife nach dem ersten möglichen Zeichen durchsuchen, und anschließend überprüfen, ob das nächste Zeichen zum Protokoll passt. Am besten, ist natürlich bei nicht festgelegten Längen, wenn du auch noch ein Endezeichen hast.

    sast

    雅思特史特芬
    开发及研究

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    .. Telnet für steuerzeichen ..
    Na, eh' das Übliche:
    Mach Folgendes:

    recvMsgSize = sock->recv(echoBuffer, RCVBUFSIZE))
    if (!recvMsgSize) break; // da is was kaputt

    while (recvMsgSize)
    {
    recvMsgSize--;
    if echoBuffer[recvMsgSize] > 0x20) // "TRim"->letztes Zeichen KEIN steuerzeichen
    break;
    }
    echoBuffer[recvMsgSize] = 0x00; // ein "echter" ASCIZ string
    if (strcmp(echoBuffer, "dudeldei") == 0) {}
    if (strcmp(echoBuffer, "Q") == 0) {}
    if (strcmp(echoBuffer, "Quack") == 0) {}
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Ein fast HW-unabhängiges Beispiel, das soas macht findest du in Sprungtabelle

    Im Endeffekt ist's das was PicNick schon geschrieben hat, nur mit einer Schleife drumrum.
    Disclaimer: none. Sue me.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    öhm .. schon mal mit
    strchr
    strstr
    strtok
    auseinandergesetzt ?
    Alle (inkl. strcmp - würbe besser strncmp nehmen) sind case-sensitiv .. also ggf ein strupr machen ....
    Ich kann mir keine Signatur leisten - bin selbständig!

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von vajk
    öhm .. schon mal mit...auseinandergesetzt ?
    Haben wir. Für ernsthaftes Parsen is das aber nix.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Ort
    Aachen
    Alter
    38
    Beiträge
    100
    So ich habe das jetzt hinbekommen, und zwar habe ich zuerst \r und \n durch ein 0x20 ersetzt und dann den Code von PicNick verwendet, vielen Dank für eure Hilfe

    Mfg

    Stoneman

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    62
    Beiträge
    534
    Zitat Zitat von PicNick
    ... Für ernsthaftes Parsen is das aber nix.
    Das sehe ich anders. Nicht schlechter als ein strcmp !
    Ich kann mir keine Signatur leisten - bin selbständig!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen