<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Arbeitet ihr mehr mit string oder CStrings?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bevorzuge es immer mit Strings der Standard-Bibliothek zu arbeiten und erst kurz vor einem Aufrufes einer Methode, die nur CStrings versteht, diese dann umzuwandeln. Wie macht ihr das, wenn ihr eine Klasse baut die Funktionen aufruft? Der Konstruktor von ofstream brauch ja auch einen CString für den Dateinamen. Legt ihr in eurer Klassen dann ein Char-Array fester Größe für den Dateinamen an, oder arbeitet ihr auch intern mit std::string und wandelt dann dort um, wo es notwendig ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308980/arbeitet-ihr-mehr-mit-string-oder-cstrings</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 17:07:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308980.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Oct 2012 07:10:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:10:27 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich bevorzuge es immer mit Strings der Standard-Bibliothek zu arbeiten und erst kurz vor einem Aufrufes einer Methode, die nur CStrings versteht, diese dann umzuwandeln. Wie macht ihr das, wenn ihr eine Klasse baut die Funktionen aufruft? Der Konstruktor von ofstream brauch ja auch einen CString für den Dateinamen. Legt ihr in eurer Klassen dann ein Char-Array fester Größe für den Dateinamen an, oder arbeitet ihr auch intern mit std::string und wandelt dann dort um, wo es notwendig ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259064</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:10:27 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:15:29 GMT]]></title><description><![CDATA[<p>Ich versuche, überall std::string zu verwenden, und ggf. zu konvertieren. Es gibt aber auch den Fall, dass ich kleine Modifikationen an bestehenden Modulen mache, die sowieso komplett mit char-Arrays (besser nicht CString dazu sagen, dass ist eine MFC/ATL-Klasse) arbeitet. Dann bleibe ich auch dabei und schreibe nicht alles um (einfach, weil dazu meist die Zeit fehlt). Und in unseren C-Modulen muss ich selbstverständlich immer mit char-Arrays arbeiten.</p>
<p>Manchmal arbeite ich auch mit CString. Wir haben hier sowieso viel MFC, und die Klasse gefällt mir für viele Anwendungsfälle auch recht gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259066</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:17:04 GMT]]></title><description><![CDATA[<p>Butterbrot schrieb:</p>
<blockquote>
<p>Der Konstruktor von ofstream brauch ja auch einen CString für den Dateinamen.</p>
</blockquote>
<p>Seit C++11 nicht mehr.<br />
Das war aber auch meist die einzige Stelle, wo ich noch einen klassischen C string benötigte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259068</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:18:58 GMT]]></title><description><![CDATA[<p>Butterbrot schrieb:</p>
<blockquote>
<p>Der Konstruktor von ofstream brauch ja auch einen CString für den Dateinamen.</p>
</blockquote>
<p>Seit C++11 nicht mehr. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Spaß beiseite, ich verwende immer <code>std::string</code> für Member-Strings. Wenn man dann irgendwann eine Funktion mit einem C-String als Parameter aufrufen muss, einfach <code>c_str()</code> benutzen und fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259069</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:18:58 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:22:17 GMT]]></title><description><![CDATA[<p>meistens mit std::strings, für statische Konstanten allerdings auch oft mit char*. Aktuell habe ich aber z.B. eine Situation, wo ich weder das eine noch das andere benutze: alle Strings in dem Modul sind konstant und werden bei der Initialisierung mit übergeben. Das geschieht dann so, dass ich den Inhalt aller strings als ein einziges großes char-Array übergebe, die (ziemlich kleine) ConstString-Klasse besteht dann aus einem Pointer und einer Längenangabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259072</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:22:17 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 07:23:54 GMT]]></title><description><![CDATA[<p>Ok danke, dann bin ich doch nicht so verrückt. Zeit habe ich genug, da ich nur zum Spaß programmiere.</p>
<p>Ich biete, bis jetzt, in meinen eigenen Klassen immer zwei Möglichkeiten an. C++-Strings und Char-Array, falls die Objekte darin Char-Arrays brauchen, intern arbeite ich aber immer mit den C++-Strings. Ist zwar ein Overhead, aber ich kann, dank der vielen Methoden der C++-Stings, mit denen einfach besser arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259073</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 11 Oct 2012 07:23:54 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 09:07:14 GMT]]></title><description><![CDATA[<p>Nimm lieber immer entweder const char* oder const std::string&amp;, das macht viele Klassen übersichtlicher. (Insbesondere wenn du 2 Parameter hast, und da auch noch alle Kombinationen anbieten willst.) Und dann würde ich zu const std::string&amp; greifen, wenn du nicht einen guten Grund für das andere hast. Der Overhead entsteht ja nur ein mal, wenn der string erstellt wird. Und damit ist das bei den meisten (Desktop-) Programmen vernachlässigbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259110</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 11 Oct 2012 09:07:14 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeitet ihr mehr mit string oder CStrings? on Thu, 11 Oct 2012 12:53:49 GMT]]></title><description><![CDATA[<p>Ja, haste Recht das macht Sinn. An die Kombinationen, wenn mal mehr als einen Parameter habe, hatte ich nicht gedacht. Der Overhead ist bei meinen Programmen meist egal und wenn dann sind es nur ein paar Prozent, die wirklich genauer auf Geschwindigkeit Beachtung verdienen.</p>
<p>Das wichtigste für mich ist immer noch Übersichtlichkeit, die Wahl der richtigen Algos und dass ich Fehler gut finde. Da ich nicht immer programmiere, sondern auch noch Grafik und Musik mache, muss ich in ein paar Wochen auch noch auf einen Blick meinen Code verstehen können.</p>
<p>Lieber fünf Objekte mehr, an den Stelle wo Performance eh egal ist, und dafür easy nachzuvollziehen, als alles in eine Zeile quetschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2259203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2259203</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 11 Oct 2012 12:53:49 GMT</pubDate></item></channel></rss>