<?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[frage zu cctype und cname]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine eher allgemeine Frage zu diesen beiden Headern.<br />
Im C++ Primer bin ich gerade da angekommen, wo es um die Verarbeitung von Strings geht und dort werden diese beiden Header erwähnt. Nur wenn ich das richtig verstanden habe, sind das doch portierte Header aus der C Bibliothek und enthalten somit keine Klassen und Methoden, sondern einfache Funktionen, oder?</p>
<p>Sollte man diese Funktionen verwenden und gibt es überhaupt Alternativen dazu?<br />
Es wird ja überall vor &quot;C with classes&quot; gewarnt. Ich als jemand, der ja noch nicht ganz so lange dabei ist, möchte dagegen schon versuchen, C++ objekt orientiert zu verwenden.</p>
<p>Ich kann mir allerdings auch nicht vorstellen, dass im C++ Primer etwas falsches vermittelt wird.<br />
Zur Info: ich habe die 4. Auflage.<br />
Was würdet ihr mir also raten?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320220/frage-zu-cctype-und-cname</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 06:02:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320220.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Sep 2013 14:36:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to frage zu cctype und cname on Fri, 20 Sep 2013 14:36:18 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine eher allgemeine Frage zu diesen beiden Headern.<br />
Im C++ Primer bin ich gerade da angekommen, wo es um die Verarbeitung von Strings geht und dort werden diese beiden Header erwähnt. Nur wenn ich das richtig verstanden habe, sind das doch portierte Header aus der C Bibliothek und enthalten somit keine Klassen und Methoden, sondern einfache Funktionen, oder?</p>
<p>Sollte man diese Funktionen verwenden und gibt es überhaupt Alternativen dazu?<br />
Es wird ja überall vor &quot;C with classes&quot; gewarnt. Ich als jemand, der ja noch nicht ganz so lange dabei ist, möchte dagegen schon versuchen, C++ objekt orientiert zu verwenden.</p>
<p>Ich kann mir allerdings auch nicht vorstellen, dass im C++ Primer etwas falsches vermittelt wird.<br />
Zur Info: ich habe die 4. Auflage.<br />
Was würdet ihr mir also raten?</p>
<p>Viele Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354114</guid><dc:creator><![CDATA[BIOSzillator]]></dc:creator><pubDate>Fri, 20 Sep 2013 14:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Fri, 20 Sep 2013 15:01:12 GMT]]></title><description><![CDATA[<blockquote>
<p>Nur wenn ich das richtig verstanden habe, sind das doch portierte Header aus der C Bibliothek und enthalten somit keine Klassen und Methoden, sondern einfache Funktionen, oder?</p>
</blockquote>
<p>Ja genau.</p>
<p>(Wie du davon sprichst, fast wie ein Snob: Die einfachen Funktionen, bäuerlich und schlecht erzogen)</p>
<blockquote>
<p>Sollte man diese Funktionen verwenden und gibt es überhaupt Alternativen dazu?</p>
</blockquote>
<p>Ja und ja. Das ist in Ordnung. Das benutzen alle.</p>
<p>Diese Funktionen werden nicht nur standardmäßig verwendet, sondern wurden mit C++11 sogar ergänzt:<br />
<a href="http://en.cppreference.com/w/cpp/string/byte/isblank" rel="nofollow"> <code>std::is_blank</code> </a></p>
<p>Die 'Alternative' währen die locale-Funktionen aus<a href="http://en.cppreference.com/w/cpp/locale" rel="nofollow"> <code>&lt;locale&gt;</code> </a>, die dasselbe tun, nur dabei das<a href="http://en.cppreference.com/w/cpp/locale/ctype" rel="nofollow"> <code>std::ctype</code> </a>-Facet des übergebenen Locales berücksichtigen.</p>
<p>Oder man geht und macht es gleich selbst über das Facet - das geht natürlich auch.</p>
<blockquote>
<p>Ich als jemand, der ja noch nicht ganz so lange dabei ist, möchte dagegen schon versuchen, C++ objekt orientiert zu verwenden.</p>
</blockquote>
<p>Das hatten wir gerade in einem anderen Thread. Klassen sind nicht immer sinnvoll. Hier sind einfache Funktionen völlig ausreichend. Gerade dann, wenn du sie bspw. als Prädikat einem STL-Algorithmus übergeben willst.</p>
<p>Du musst ab einem bestimmten Punkt deines Lernprozesses sowieso auch die C-Library verstehen (dazu gehören auch alle &lt;cstring&gt;-Funktionen, <code>malloc</code> , &amp; co.). Viele benutzen (gerade in C++03) ja auch <code>srand</code> / <code>rand</code> , <code>time</code> und <code>tm</code> , und Konsorten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354120</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 20 Sep 2013 15:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Fri, 20 Sep 2013 15:43:54 GMT]]></title><description><![CDATA[<p>Dank dir Sone.<br />
Wieder was dazu gelernt. Wunderte mich nur ein wenig, da ja z.B. C# sehr viel in Klassen packt. Da geht ja beispielsweise tolower() direkt aus dem String Objekt heraus. Wenn ich das richtig verstanden habe, muss man in C++ dagegen der tolower Funktion den String als Parameter übergeben.</p>
<p>Nach dem Thread, den du angesprochen hast, werde ich gleich mal schauen.</p>
<p>Was die &quot;einfachen Funktionen&quot; betrifft&quot;, klingt es beim zweiten Lesen tatsächlich etwas nach Snob.<br />
&quot;Mein König. Die einfachen Funktionen verlangen weniger Code.&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354130</guid><dc:creator><![CDATA[BIOSzillator]]></dc:creator><pubDate>Fri, 20 Sep 2013 15:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Sat, 21 Sep 2013 00:14:10 GMT]]></title><description><![CDATA[<p>Funktionen sind eine feine Sache. Die Kritik an &quot;C with Classes&quot; bezieht sich nicht auf die Nutzung von Funktionen als Bausteine deiner Programme. Keinen Grund sie zu meiden. Wenn sich ein Problem gut mit einer Funktion lösen lässt, benutze auch eine Funktion.</p>
<p>Java (und damit auch C#) ist in dieser Hinsicht etwas hirnverbrannt. Lässt sich aber durchaus mit dem damaligen Zeitgeist erklären, wenn man beachtet, wann Java designt wurde. Heute ist man etwas weiser. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354246</guid><dc:creator><![CDATA[beancounter]]></dc:creator><pubDate>Sat, 21 Sep 2013 00:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Sat, 21 Sep 2013 10:59:49 GMT]]></title><description><![CDATA[<p>Dank dir. Mit dem damaligen Zeitgeist meinst du bestimmt den Hype der objekt orientierten Sprachen, von dem ich hier im Forum schon öfters gelesen habe, oder? Allerdings ist doch C# noch gar nicht so alt.<br />
Gibt es denn irgend welche Tabus, die manmöglichst meiden sollte, damit man nicht in diese cwc Richtung abdriftet.<br />
Also was ich weiß ist, dass man keine .h Header aus der c Bibliothek verwenden sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354326</guid><dc:creator><![CDATA[BIOSzillator]]></dc:creator><pubDate>Sat, 21 Sep 2013 10:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Sat, 21 Sep 2013 11:09:30 GMT]]></title><description><![CDATA[<p>Grundsätzlich solltest du manuelle Speicherverwaltung und Arrays meiden und stattdessen auf RAII und gekapselte Klassen setzen. <a href="http://klmr.me/slides/modern-cpp.pdf" rel="nofollow">Hier</a> wird das Ganze gut zusammengefasst.</p>
<p>Gibt natürlich viele andere C-Sprachmittel, für die es in C++ oft bessere Alternativen gibt: Variable Argumentlisten, Makros, <code>goto</code> , C-Casts, <code>union</code> , ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354327</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 21 Sep 2013 11:09:30 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Sat, 21 Sep 2013 12:46:14 GMT]]></title><description><![CDATA[<p>Man sollte RAII verwenden, wenn nötig auf Fehler mit Exceptions statt kryptischer Rückgabewerte reagieren, die Standard Library auch nutzen, wenn möglich die &quot;richtigen&quot; Funktionen und nicht die aus den alten c-headern verwenden und man sollte übersichtlich programmieren.</p>
<p>BIOSzillator schrieb:</p>
<blockquote>
<p>Wunderte mich nur ein wenig, da ja z.B. C# sehr viel in Klassen packt. Da geht ja beispielsweise tolower() direkt aus dem String Objekt heraus. Wenn ich das richtig verstanden habe, muss man in C++ dagegen der tolower Funktion den String als Parameter übergeben.</p>
</blockquote>
<p>Schau dir mal an, welche große Anzahl von Funktionen es im Header Algorithm gibt. Würde man diese nun für jede Klasse implementieren, wären die Header einfach nur übervoll.<br />
In C++ sind die Container von den Algorithmen getrennt und arbeiten über Iteratorenpaare zusammen.<br />
<a href="http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Introduction-to-STL-with-Stephan-T-Lavavej" rel="nofollow">Hier</a> wird das in den ersten drei Teilen ganz gut erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354349</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sat, 21 Sep 2013 12:46:14 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Mon, 23 Sep 2013 11:29:29 GMT]]></title><description><![CDATA[<p>Vielen Dankf ür die Tipps. Ich denke, dass ich dann momentan nicht &quot;viel&quot; falsch mache. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Das mit der Auslagerung der Algorithmen macht bei der Menge Sinn. Das würde allerdings doch bedeuten, dass die Klassen in beispielsweise C# riesig sind. Oder die Methoden sind in C# Überschaubarer als in C++, was ich jetzt mal vermute.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354849</guid><dc:creator><![CDATA[BIOSzillator]]></dc:creator><pubDate>Mon, 23 Sep 2013 11:29:29 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Mon, 23 Sep 2013 11:57:23 GMT]]></title><description><![CDATA[<p>BIOSzillator schrieb:</p>
<blockquote>
<p>Das würde allerdings doch bedeuten, dass die Klassen in beispielsweise C# riesig sind. Oder die Methoden sind in C# Überschaubarer als in C++, was ich jetzt mal vermute.</p>
</blockquote>
<p>Was heißt schon &quot;groß&quot; oder &quot;klein&quot;, wenn man von Klassen und Methoden spricht? Der Code ist bei beiden irgendwo vorhanden, er ist bloß anders organisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354861</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Sep 2013 11:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Mon, 23 Sep 2013 12:13:27 GMT]]></title><description><![CDATA[<p>Achso, dass war auf die Aussage von Marthog bezogen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354872</guid><dc:creator><![CDATA[BIOSzillator]]></dc:creator><pubDate>Mon, 23 Sep 2013 12:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to frage zu cctype und cname on Mon, 23 Sep 2013 12:53:06 GMT]]></title><description><![CDATA[<p>BIOSzillator schrieb:</p>
<blockquote>
<p>Achso, dass war auf die Aussage von Marthog bezogen.</p>
</blockquote>
<p>Ich kenne zwar C# nicht, aber die haben den Code sicherlich auch nicht einfach kopiert. Vermutlich erben die Container von einer Klasse, die eine allgemeine Sortiemethode implementiert (&quot;sortable_container&quot;), mit optionaler Sonderimplementierung für Container, bei denen man das Sortieren optimieren kann (verkettete Listen). So würde ich das jedenfalls machen, wenn ich zwanghaft alles in eine Klassenhierarchie einordnen müsste.</p>
<p>Natürlich hätte man dann den ganzen Sortiercode auch dabei, wenn man bloß einen Container ohne Sortieren möchte, aber das wird wohl zu verkraften sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2354884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2354884</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Sep 2013 12:53:06 GMT</pubDate></item></channel></rss>