![]() |
C++ Zahlen in String Formatieren ?
Hallo,
ich habe eine Fkt gefunden, der Zahlen in eine String formatiert: String str1[7]; sprintf(str1, "%.4u%.2u", 1431, 09); Frage: wer kennt eine Fkt in C++, der als Formatierungergebnis den String str1 direkt liefert und nicht erst in eine Stringvariable zuweist? z.B so: str1= sprintf("%.4u%.2u", 1431, 09); MFG |
AW: C++ Zahlen in String Formatieren ?
Kommt drauf an, was du unter einem String verstehst.
Üblicherweise ist ein String unter C/C++ ein Zeiger auf ein Array von Chars. Und da liegt das Problem: der Aufrufer muss den Speicherplatz für das Array bereitstellen. Deshalb kann der Aufruf so wie du ihn dir vorstellst nicht funktionieren. Aber es gibt Rettung in Form der ![]() Somit wäre Folgendes möglich:
Code:
Der grosse Vorteil der CString-Klasse ist auch dass damit die Strings im Prinzip unbegrenzt anwachsen können. (obere Grenze setzt der Hauptspeicher bzw max 2GB)
#include "cstrings.h"
... CString str1, str2; str1.Format("%.4u%.2u", 1431, 09); str2 = str1; // funktioniert weil der Operator "=" überladen ist Damit sind auf die gefährlichen Pufferüberschreibungen kein Problem mehr. Man muss allerdings mit etwas Leistungsverlust bei Verwendung der CString-Klasse rechnen. Gerade bei Strings zeigt sich eben auch wie schön Delphi gegenüber C/C++ ist. :wink: Strings in Delphi sind ein optimaler Kompromiss zwischen Leistung und einfacher Benutzbarkeit. |
AW: C++ Zahlen in String Formatieren ?
Besser (weil C++ und nicht Microsoft's MFC/ATL) ist std::string mit std::stringstream (der Stream frißt auch Zahlwerte oder spuckt sie aus, i.e. geht in beide Richtungen). Gibt's natürlich bei MSVC auch, aber eben auch bei anderen Compilern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz