String löschen



  • Hallo,

    gibt es einen Befehl mit dem ich alle Zeichen von einem String löschen kann?

    danke schön

    newey



  • Hallo,
    das kommt darauf an, was du unter String verstehst?

    Bei String, AnsiString, UnicodeString etc.:
    
    AnsiString MyString;
    MyString = "1234";     // zuweisen
    MyString = "";         // komplett löschen
    MyString.Delete(2,3);  // löscht vom zweiten Zeichen an drei Zeichen
    
    Bei char:
    char MyChar[10];
    
    strcpy(MyChar,"1234");   // zuweisen
    memset(MyChar,0,10);     // löschen
    oder
    MyChar[0] = NULL;        // löschen
    


  • also meine Deklaration sieht so aus:

    char daten[500];
    

    Der String wird dann gefüllt und später ausgewertet.

    Vor dem nächsten Füllen möchte ich den Inhalt leeren / löschen, damit ich nicht alte Daten auswerte. (die Anzahl der Zeichen ist unterschiedlich lang, deshalb möchte ich löschen)

    Vielen Dank

    newey



  • memset(daten, '\0', sizeof(daten));
    

    bzw

    memset(daten, '\0', 500);
    

    EDIT: Die Lösung ist oben auch schon, aber du hast ja nochmal den Fall konkretisiert und hier ist dann denke ich die konkrete Antwort auf die Frage.



  • newey schrieb:

    char daten[500];
    

    Der String wird dann gefüllt und später ausgewertet.

    Und wo ist da der String?
    Ich sehe nur ein Character-Array.



  • Wenn dieser Beitrag irgendwie mit dem deiner seriellen Schnittstelle zusammenhängt, dann ist std::vector die Antwort auf deine Probleme.
    Du möchtest hinten Daten anhängen und vorn löschen, das geht mit std::vector komfortabel, wenn auch nicht optimal. Für RS232 Kommunikation reicht das aber alle Male...


Log in to reply