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));
-
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!
-
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.
-
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.