Ich versuche, die letzten 4 Zeichen von einem Zeichen-Array zu trennen, und ich habe versucht, die Methode, die Python ohne Erfolg verwendet;
%Vor%Ich möchte, dass dieser Code zurückkehrt;
%Vor%aber c / c ++ scheint nicht so einfach zu sein ...
Wo könnte ich eine einfache Alternative finden, die die letzten 4 Zeichen eines char-Arrays in ein anderes char-Array zurückgibt?
Versuchen:
%Vor%In C ++ können Sie das ersetzen durch:
%Vor%Der Code verwendet eine spezielle Eigenschaft von C-Strings, die nur zum Abschneiden des Anfangs eines Strings verwendet wird.
Zuerst entfernen wir die veraltete Konvertierung:
%Vor%Arrays sind keine erstklassigen Werte in C ++ und sie unterstützen kein Slicing. So wie der obige Charon auf das erste Element im Array zeigt, können Sie auf jedes andere Element zeigen. Zeiger werden zusammen mit Zeichen verwendet, um C-artige Zeichenfolgen zu erstellen: die spitzen Zeichen, bis ein Null-Zeichen der Inhalt der Zeichenfolge ist. Da sich die gewünschten Zeichen am Ende der aktuellen (charone) Zeichenfolge befinden, können Sie auf das "f" zeigen:
%Vor%Oder um beliebige String-Werte zu behandeln:
%Vor%Oder weil Sie C ++ verwenden:
%Vor%Beachten Sie insbesondere, dass std :: string Ihnen distinct -Werte gibt, so dass das Ändern eines Strings das andere nicht verändert, wie es bei Pointern der Fall ist.
C ++ und Python sind sehr unterschiedlich. C ++ verfügt nicht über integrierte Python-ähnliche Zeichenfolgenfunktionen, aber seine Standard Template Library hat ein praktisches std::string
Typ, mit dem Sie sich beschäftigen sollten.
Wenn Sie nur kurz auf die letzten vier Zeichen zugreifen möchten, dann etwas wie
%Vor%ist in Ordnung (plus einige Fehlerprüfung).
Wenn Sie jedoch die Python-Funktionalität replizieren möchten, müssen Sie die letzten vier Zeichen kopieren . Verwenden Sie erneut strlen, um die Länge zu erhalten (oder speichern Sie sie vorher irgendwo), und verwenden Sie dann strcpy ( oder wahrscheinlich eine bessere stl-Funktion, die die gleiche Funktion hat). etwas wie ...
%Vor%(Hinweis: Wenn Sie nicht kopieren, können Sie charone nicht freigeben, bis Sie chargewo nicht mehr verwenden. Wenn Sie nicht kopieren, ändert sich chartrowo auch, wenn Sie charone später ändern das ist in Ordnung, dann sicher, zeigen Sie einfach auf den Offset.)
Array-Slicing in C ++:
%Vor%Dies ist nur eines der Beispiele, in denen das Slicen sinnvoll ist
Ich habe in Ссылка
eine kleine Bibliothek erstellt, die dies mit Kompilierungszeit-Überprüfungen durchführtTags und Links c++