Die letzten Zeichen eines Strings löschen?



  • int main(int argc, char* argv[])
    {
    
    //Eingabeabfrage 
    		char eingabe1[100];
    		char eingabe2[100] = "";
    		char eingabe3[100];
    
    		scanf("%99s" "%99s" "%99s", eingabe1, eingabe2, eingabe3);
    

    Wie kann ich die letzten 4 Zeichen aus dem String eingabe 2 entfernen?

    Danke.



  • Das ist C und kein C++.

    char eingabe2[100] = ".........";
    
    eingabe2[strlen(eingabe2) - 4] = 0;
    

    Aber ohne Garantien, weil das gefährlich ist. Und Entfernen ist hier relativ zu sehen, weil da sind die Zeichen schon noch.

    Ansosnten C++:

    std::string eingabe2 = "......."
    eingabe2.erase(std::advance(std::end(eingabe2), -4), std::end(eingabe2));
    

  • Mod

    eingabe2.erase(std::advance(std::end(eingabe2), -4), std::end(eingabe2));
    

    ➡

    eingabe2.erase( eingabe2.size() - 4 );
    


  • Skym0sh0 schrieb:

    Das ist C und kein C++.

    char eingabe2[100] = ".........";
    
    eingabe2[strlen(eingabe2) - 4] = 0;
    

    Aber ohne Garantien, weil das gefährlich ist. Und Entfernen ist hier relativ zu sehen, weil da sind die Zeichen schon noch.

    Ansosnten C++:

    std::string eingabe2 = "......."
    eingabe2.erase(std::advance(std::end(eingabe2), -4), std::end(eingabe2));
    

    Perfekt. Hat funktioniert.

    Danke



  • strtok123 schrieb:

    int main(int argc, char* argv[])
    {
    
    //Eingabeabfrage 
    		char eingabe1[100];
    		char eingabe2[100] = "";
    		char eingabe3[100];
    
    		
    		scanf("%99s" "%99s" "%99s", eingabe1, eingabe2, eingabe3);
    

    Wie kann ich die letzten 4 Zeichen aus dem String eingabe 2 entfernen?

    Danke.

    Gar nicht! Du hast hier Arrays mit fester Länge, da lässt sich nichts entfernen!


  • Mod

    Belli schrieb:

    Gar nicht! Du hast hier Arrays mit fester Länge, da lässt sich nichts entfernen!

    Array != String. Der String ist (in C) eine Folge von Zeichen mit Nullterminierung. Das kann, muss aber nicht, in einem Array stecken, hat aber sonst nichts weiter mit seinem Behälter zu tun.



  • eingabe2 ist hier ein array von 100 char.


  • Mod

    Belli schrieb:

    eingabe2 ist hier ein array von 100 char.

    Der darin gespeicherte String wird aber tatsächlich kürzer, wenn man die 0 vorzieht.


Log in to reply