<?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[Stringlänge berechen]]></title><description><![CDATA[<p>Hier ist schon meine nächste Frage.</p>
<p>Im Buch &quot;Der C++ Programmierer&quot; ist zur Stringlängenberechnung folgendes Beispiel:</p>
<pre><code class="language-cpp">const char *str1 = &quot;pro bonum, contra malum&quot;;
const char *temp = str1;
int sl = 0;

while{*temp){
 ++sl;
 ++temp;
}

cout &lt;&lt; &quot;Stringlaenge von &quot; &lt;&lt; str1 &lt;&lt; &quot;=&quot; &lt;&lt; sl &lt;&lt; endl;
</code></pre>
<p>Nun habe ich mir gedacht, es auf wirklich auf <code>strings</code> anzuwenden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	string Text;
	string *str1;
	string *temp = str1;
	int sl = 0;

	cout &lt;&lt; &quot;Geben Sie einen Text ein!\n&quot;;
	getline (cin, Text);

	while(*temp)
	{
		++sl;
		++temp;
	}

	cout &lt;&lt; &quot;Ihr Text &quot; &lt;&lt; str1 &lt;&lt; &quot; hat &quot; &lt;&lt; sl &lt;&lt; &quot; Buchstaben!\n&quot;;

	return 0;
}
</code></pre>
<p>Jedoch gibt mein Compiler folgende Fehlermeldung aus:</p>
<pre><code class="language-cpp">error C2451: Bedingter Ausdruck des Typs 'std::string' nicht zulässig
          Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
</code></pre>
<p>Was habe ich falsch gemacht?</p>
<p>Danke für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312286/stringlänge-berechen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 23:45:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312286.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Dec 2012 12:34:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:34:28 GMT]]></title><description><![CDATA[<p>Hier ist schon meine nächste Frage.</p>
<p>Im Buch &quot;Der C++ Programmierer&quot; ist zur Stringlängenberechnung folgendes Beispiel:</p>
<pre><code class="language-cpp">const char *str1 = &quot;pro bonum, contra malum&quot;;
const char *temp = str1;
int sl = 0;

while{*temp){
 ++sl;
 ++temp;
}

cout &lt;&lt; &quot;Stringlaenge von &quot; &lt;&lt; str1 &lt;&lt; &quot;=&quot; &lt;&lt; sl &lt;&lt; endl;
</code></pre>
<p>Nun habe ich mir gedacht, es auf wirklich auf <code>strings</code> anzuwenden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	string Text;
	string *str1;
	string *temp = str1;
	int sl = 0;

	cout &lt;&lt; &quot;Geben Sie einen Text ein!\n&quot;;
	getline (cin, Text);

	while(*temp)
	{
		++sl;
		++temp;
	}

	cout &lt;&lt; &quot;Ihr Text &quot; &lt;&lt; str1 &lt;&lt; &quot; hat &quot; &lt;&lt; sl &lt;&lt; &quot; Buchstaben!\n&quot;;

	return 0;
}
</code></pre>
<p>Jedoch gibt mein Compiler folgende Fehlermeldung aus:</p>
<pre><code class="language-cpp">error C2451: Bedingter Ausdruck des Typs 'std::string' nicht zulässig
          Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
</code></pre>
<p>Was habe ich falsch gemacht?</p>
<p>Danke für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284731</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:34:28 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:40:09 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
 
int main()
{
    string Text;
    string *str1;
    string *temp = str1;
    int sl = 0;
   
    cout &lt;&lt; &quot;Geben Sie einen Text ein!\n&quot;;
    getline (cin, Text);
 
    while(*temp)
    {
        ++sl;
        ++temp;
    }
 
    cout &lt;&lt; &quot;Ihr Text &quot; &lt;&lt; str1 &lt;&lt; &quot; hat &quot; &lt;&lt; sl &lt;&lt; &quot; Buchstaben!\n&quot;;
 
    return 0;
}
</code></pre>
</blockquote>
<p>Was ist denn das schon wieder für ein Müll?</p>
<p>Keine Ahnung was man dazu noch sagen soll. Gibt's in Deinem Hirn irgendeine Sperre gegen neues Wissen oder warum machst Du null Fortschritte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284732</guid><dc:creator><![CDATA[lolalter]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:42:55 GMT]]></title><description><![CDATA[<p>Du kennst immer noch nicht den Unterschied zwischen C-Strings und std::string. Und ich habe keine Lust das zum 10000. mal zu erklären, das sollte offensichtlich sein. Im Übrigen rate ich dir dazu erstmal C und dann C++ zu lernen, das vermeidet nämlich solche Verwirrungen. (Offensichtlich gibt's da nur C-Strings, und da lernst du auch mal was ein Pointer ist.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284733</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:41:20 GMT]]></title><description><![CDATA[<p>Ok, Kommentiere mal deinen eigenen Code, Zeile für Zeile. Dir MUSS doch auffallen, dass das Blödsinn ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284734</guid><dc:creator><![CDATA[lolalter]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:41:44 GMT]]></title><description><![CDATA[<p>lolalter schrieb:</p>
<blockquote>
<p>Was ist denn das schon wieder für ein Müll?</p>
<p>Keine Ahnung was man dazu noch sagen soll. Gibt's in Deinem Hirn irgendeine Sperre gegen neues Wissen oder warum machst Du null Fortschritte?</p>
</blockquote>
<p>Vielen Dank für die hilfreiche Antwort auf meine Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284735</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:45:07 GMT]]></title><description><![CDATA[<p>Was ist denn an meinem Code denn schon wieder so blödsinnig???????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284736</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:45:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:49:59 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Was ist denn an meinem Code denn schon wieder so blödsinnig???????</p>
</blockquote>
<p>Alles. Einfach alles.<br />
Du behandelst std::strings wie char-Arrays und denkst das wäre dann C++. Es fällt Dir nichtmal auf, dass Dein eingegebener Text (in die gleichnamige string Variable) nix mit den Zeigern zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284739</guid><dc:creator><![CDATA[lolalter]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:56:42 GMT]]></title><description><![CDATA[<p>Im Buch Coding for Fun mit C++ wird der Unterschied zwischen<br />
String-Bearbeitung mit Zeiger(C-String) und Arrays(std::string)<br />
an einem Beispiel erläutert.</p>
<p>0x0ERROR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284740</guid><dc:creator><![CDATA[0x0ERROR]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:51:34 GMT]]></title><description><![CDATA[<p>Nicht nur, dass du const char* nicht von std::string* unterscheiden kannst. Auf was, denkst du, zeigt temp? (Tipp: Es zeigt auf das gleiche wie str1.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284741</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 12:53:14 GMT]]></title><description><![CDATA[<p>lolalter schrieb:</p>
<blockquote>
<p>Keine Ahnung was man dazu noch sagen soll.</p>
</blockquote>
<p>Ich auch nicht. Er scheint nicht verstanden zu haben, was<br />
- char<br />
- std::string<br />
- Zeiger<br />
sind und dass man Zeiger z.B. auch mit einer gültigen Adresse initialisieren muss, bevor man sie dereferenziert oder inkrementiert.</p>
<pre><code class="language-cpp">std::string Text = &quot;foo&quot;;
std::cout &lt;&lt; Text.length() &lt;&lt; std::endl;
//                ^^^^^^
</code></pre>
<p>silent_max schrieb:</p>
<blockquote>
<p>Was ist denn an meinem Code denn schon wieder so blödsinnig???????</p>
</blockquote>
<p>An dem string-Dingen? Alles. Von vorn bis hinten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284742</guid><dc:creator><![CDATA[kk-in-hh]]></dc:creator><pubDate>Mon, 31 Dec 2012 12:53:14 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 13:01:27 GMT]]></title><description><![CDATA[<p>also ich kann es absolut nicht nachvollziehen, dass meine vorredner dich so niedermachen, und das auch noch auf diese art und weise...<br />
du hattest ja jetzt schon so einen thread aufgemacht, wo du gefragt hast, ob du überhaupt weiterprogrammieren sollst.<br />
und ich glaube, der konsens war, dass aufgeben nicht drin ist.<br />
d.h. du bist vielleicht vom fachwissen (noch) nicht so gut, aber das kommt bald</p>
<p>zum problem:<br />
du mischst C-Strings und std::string vom prinzip. und dann bringst du auch noch zeiger rein. Ich kommentier das mal</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std; // blabla standard includes usw...

int main()
{
    string Text; // ok, ein string Text, den du unten eingibst
    string *str1; // ok, du hast einen zeiger auf einen std::string, wofür? mh, vielleicht sehen wir das gleich
    string *temp = str1; // oh, noch ein zeiger auf einen string, der direkt auf den ersten string zeiger zeigt (macht nur keinen sinn, denn dieser ist noch unbelegt -&gt; undefined behaviour)
    int sl = 0; // ein int ok, name nicht so gut gewählt, aber das ist sekundär

    cout &lt;&lt; &quot;Geben Sie einen Text ein!\n&quot;;
    getline (cin, Text); // hier gibst du den string ein, ok!

    while(*temp) // hier hantierst du mit dem zweiten stringzeiger, der eigentlich auch nicht initialisiert ist -&gt; hier kann man nicht vrhersehen was passiert
    {
        ++sl; // du erhöhst den int zähler ok
        ++temp; // du inkrementierst den string zeiger -&gt; undef behaviour
    }

    cout &lt;&lt; &quot;Ihr Text &quot; &lt;&lt; str1 &lt;&lt; &quot; hat &quot; &lt;&lt; sl &lt;&lt; &quot; Buchstaben!\n&quot;; // das stimmt nicht so ganz, dennd er eingegebene text war Text und nicht str1. und was hier rauskommt ist vollkommen zufällig (fast)

    return 0;
}
</code></pre>
<p>wenn du bei dem code in zeile das hier schreibst, könnte es klappen (auf den ersten blick):</p>
<pre><code>string *str1 = Text.c_str();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2284745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284745</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 31 Dec 2012 13:01:27 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 13:03:47 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>d.h. du bist vielleicht vom fachwissen (noch) nicht so gut, aber das kommt bald</p>
</blockquote>
<p>Nö. Auf dem &quot;Niveau&quot; programmiert er seit bald einem Jahr.<br />
Schau Dir seine alten Beiträge an, dann weißt Du warum viele nur noch angenervt sind.</p>
<p>Lust auch was er im elektronik-kompendium so schreibt. In Sachen Elektronik scheint er trotz Ausbildung ebenso wenig durchblick zu haben und kriegt dort das gleiche zu hören wie hier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284746</guid><dc:creator><![CDATA[CreativeLabs]]></dc:creator><pubDate>Mon, 31 Dec 2012 13:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 13:13:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28466">@silent_max</a></p>
<p>Du solltest wissen, dass man nicht alle Variablen gleich behandeln kann! Das geht nur, wenn sie vom gleichen Typ sind!<br />
=&gt; std::string != char, int != std::string, bool != int, usw.</p>
<p>Wenn du nicht weißt, wie du einen Typ behandeln sollst, du aber weißt, was du erreichen willst, dann schau in einer Reference nach!<br />
<a href="http://www.cplusplus.com/reference/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/</a></p>
<p>Deine Aufgabenstellung ist:<br />
-Benutzer soll einen Text eingeben<br />
-Programm gibt Länge (Anzahl der Zeichen) aus</p>
<p>So, den ersten Schritt, die Eingabe, hast du.<br />
Jetzt schauen wir doch mal in der Reference nach, wie wir die Länge eines std::string rausfinden kann. Beste Lösung wäre eine Funktion der Klasse std::string, die das automatisch macht, ansonsten müssen wir nach umwegen schauen.<br />
Aber, siehe da:</p>
<blockquote>
<p>size()<br />
Return length of string (public member function)</p>
</blockquote>
<p>Super! Es gibt eine Funktion, die uns die Länge sagt. Schauen wir uns mal den Beispielcode der Reference an:</p>
<pre><code>// string::size
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main ()
{
  string str (&quot;Test string&quot;);
  cout &lt;&lt; &quot;The size of str is &quot; &lt;&lt; str.size() &lt;&lt; &quot; characters.\n&quot;;
  return 0;
}
</code></pre>
<p>Jetzt bist du in der Lage (musst du in der Lage sein), das auf deine Aufgabenstellung anzuwenden!</p>
<p>@alle Flamer</p>
<p>Wenn ihr nicht produktiv helfen könnt, dann lasst es bitte sein. Das hilft euch nicht und dem silent_max erst recht nicht.</p>
<p>Gruß und guten Rutsch ins neue Jahr! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284751</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Mon, 31 Dec 2012 13:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 13:18:29 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<pre><code>string *temp = str1; // oh, noch ein zeiger auf einen string, der direkt auf den ersten string zeiger zeigt
</code></pre>
</blockquote>
<p>Er zeigt auf das, auf das str1 zeigt. Würde er auf str1 zeigen, wäre das kein UB. (Dafür sollte es allerdings ein string** sein.) (Sinnlos wäre es allerdings trotzdem.) Bitte auf korrekte Formulierung achten, das verwirrt ihn sonst doch nur noch mehr.</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>wenn du bei dem code in zeile das hier schreibst, könnte es klappen (auf den ersten blick):</p>
<pre><code>string *str1 = Text.c_str();
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Was soll das denn sein?</p>
<p>CreativeLabs schrieb:</p>
<blockquote>
<p>Nö. Auf dem &quot;Niveau&quot; programmiert er seit bald einem Jahr.</p>
</blockquote>
<p>Setz lieber das &quot;programmiert&quot; in Anführungsstriche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284754</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 31 Dec 2012 13:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 13:39:02 GMT]]></title><description><![CDATA[<p>oh, ja jetzt wo dus sagst. irgendwie war ich vorhin selbst brain-afk.</p>
<p>so gehts natürlich nicht, da hat cooky recht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284758</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 31 Dec 2012 13:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:07:49 GMT]]></title><description><![CDATA[<p>kralo9 schrieb:</p>
<blockquote>
<p>Jetzt bist du in der Lage (musst du in der Lage sein), das auf deine Aufgabenstellung anzuwenden!</p>
</blockquote>
<p>Hier die Lösung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	string str;

	cout &lt;&lt; &quot;Bitte geben Sie einen Text ein!\n&quot;;
	getline(cin, str);

	cout &lt;&lt; &quot;Ihr Text hat &quot; &lt;&lt; str.size() &lt;&lt; &quot; Buchstaben\n&quot;;

	return 0;
}
</code></pre>
<p>CreativeLabs schrieb:</p>
<blockquote>
<p>Nö. Auf dem &quot;Niveau&quot; programmiert er seit bald einem Jahr.<br />
Schau Dir seine alten Beiträge an, dann weißt Du warum viele nur noch angenervt sind.</p>
</blockquote>
<p>Willst Du mir jetzt die Schuld dafür geben, dass ich es von der Schule aus so lerne???</p>
<p>Nur damit ich es verstanden habe...</p>
<p>C-Strings, also alles was mit <strong>char</strong> zu tun hat, kann man nicht auf C++ - String, also alles was mit <strong>string</strong>, projeziern?? Also sind <strong>char</strong> und <strong>string</strong> zwei <strong>total verschiedene Dateitypen</strong>?? Also kann man bei <strong>C++ strings rein gar nichts machen, was mit C Strings zu tun hat und umgekehrt</strong>??</p>
<p>Ich weiß nicht, wer das gesagt hat, aber neulich gab es die Meldung, dass alles, was in C möglich ist, ist auch in C++ möglich. Also habe ich daher gedacht, dass alles, was mit <strong>char</strong>möglich ist, ist auch mit <strong>string</strong> möglich. Oder liege ich mal wieder daneben???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284764</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:08:00 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>C-Strings, also alles was mit <strong>char</strong> zu tun hat, kann man nicht auf C++ - String, also alles was mit <strong>string</strong>??</p>
</blockquote>
<p>Ja. Das gilt eigentlich immer, dass man nicht einfach so Operationen von einem Datentyp auf einen anderen anwenden kann.</p>
<blockquote>
<p>Ich weiß nicht, wer das gesagt hat, aber neulich gab es die Meldung, dass alles, was in C möglich ist, ist auch in C++ möglich.</p>
</blockquote>
<p>Das stimmt ja auch, du kannst in C++ auch mit C-Strings arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284766</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:19:28 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Nur damit ich es verstanden habe...</p>
<p>C-Strings, also alles was mit <strong>char</strong> zu tun hat, kann man nicht auf C++ - String, also alles was mit <strong>string</strong>, projeziern?? Also sind <strong>char</strong> und <strong>string</strong> zwei <strong>total verschiedene Dateitypen</strong>?? Also kann man bei <strong>C++ strings rein gar nichts machen, was mit C Strings zu tun hat und umgekehrt</strong>??</p>
</blockquote>
<p>kralo9 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28466">@silent_max</a></p>
<p>Du solltest wissen, dass man nicht alle Variablen gleich behandeln kann! Das geht nur, wenn sie vom gleichen Typ sind!<br />
=&gt; std::string != char, int != std::string, bool != int, usw.</p>
</blockquote>
<p>Hab dich darauf doch schon hingewiesen!</p>
<p>Edit: Dir wurde auch empfohlen, jede einzelne Codezeile zu kommentieren und zu schreiben, was du mit dieser Zeile erreichen willst! Mach das auch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284769</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:19:28 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:22:47 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Nur damit ich es verstanden habe...</p>
<p>C-Strings, also alles was mit <strong>char</strong> zu tun hat, kann man nicht auf C++ - String, also alles was mit <strong>string</strong>, projeziern?? Also sind <strong>char</strong> und <strong>string</strong> zwei <strong>total verschiedene Dateitypen</strong>?? Also kann man bei <strong>C++ strings rein gar nichts machen, was mit C Strings zu tun hat und umgekehrt</strong>??</p>
<p>Ich weiß nicht, wer das gesagt hat, aber neulich gab es die Meldung, dass alles, was in C möglich ist, ist auch in C++ möglich. Also habe ich daher gedacht, dass alles, was mit <strong>char</strong>möglich ist, ist auch mit <strong>string</strong> möglich. Oder liege ich mal wieder daneben???</p>
</blockquote>
<p>string in c++ ist im Grunde eine Klasse, kein Datentyp wie z.B. ein Char.<br />
(Zumindest sollte man das als Anfänger zum Lernen so handhaben.)<br />
Deswegen kann man mit Strings nicht das Gleiche machen wie mit Chars.</p>
<p>Wenn Du die genaue Funktionsweise von Strings verstehen möchtest, braucht man die Grundlagen zum Thema Klassen.</p>
<p>Dann kann man sich mal anschauen, wie die Klasse String aufgebaut ist.<br />
Oder sie vielleicht sogar selber in vereinfachter Form programmieren.<br />
In der Regel macht es dann auch *Klick*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284774</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:21:53 GMT]]></title><description><![CDATA[<p>kralo9 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28466">@silent_max</a></p>
<p>Du solltest wissen, dass man nicht alle Variablen gleich behandeln kann! Das geht nur, wenn sie vom gleichen Typ sind!<br />
=&gt; std::string != char, int != std::string, bool != int, usw.</p>
<p>Wenn du nicht weißt, wie du einen Typ behandeln sollst, du aber weißt, was du erreichen willst, dann schau in einer Reference nach!<br />
<a href="http://www.cplusplus.com/reference/string/string/" rel="nofollow">http://www.cplusplus.com/reference/string/string/</a></p>
<p>Deine Aufgabenstellung ist:<br />
-Benutzer soll einen Text eingeben<br />
-Programm gibt Länge (Anzahl der Zeichen) aus</p>
<p>So, den ersten Schritt, die Eingabe, hast du.<br />
Jetzt schauen wir doch mal in der Reference nach, wie wir die Länge eines std::string rausfinden kann. Beste Lösung wäre eine Funktion der Klasse std::string, die das automatisch macht, ansonsten müssen wir nach umwegen schauen.<br />
Aber, siehe da:</p>
<blockquote>
<p>size()<br />
Return length of string (public member function)</p>
</blockquote>
<p>Super! Es gibt eine Funktion, die uns die Länge sagt. Schauen wir uns mal den Beispielcode der Reference an:</p>
<pre><code>// string::size
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main ()
{
  string str (&quot;Test string&quot;);
  cout &lt;&lt; &quot;The size of str is &quot; &lt;&lt; str.size() &lt;&lt; &quot; characters.\n&quot;;
  return 0;
}
</code></pre>
<p>Jetzt bist du in der Lage (musst du in der Lage sein), das auf deine Aufgabenstellung anzuwenden!</p>
<p>@alle Flamer</p>
<p>Wenn ihr nicht produktiv helfen könnt, dann lasst es bitte sein. Das hilft euch nicht und dem silent_max erst recht nicht.</p>
<p>Gruß und guten Rutsch ins neue Jahr! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Wie kommst Du über die C++ Reference auf den C++ String? Denn wenn ich bei C++ Reference nach C Strings suche, dann finde ich bloß C Strings.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284775</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:21:56 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Ich weiß nicht, wer das gesagt hat, aber neulich gab es die Meldung, dass alles, was in C möglich ist, ist auch in C++ möglich. Also habe ich daher gedacht, dass alles, was mit <strong>char</strong>möglich ist, ist auch mit <strong>string</strong> möglich. Oder liege ich mal wieder daneben???</p>
</blockquote>
<p>Du kannst ja auch mit C-Strings dasselbe machen, wie mit std::string aus C++.<br />
In dem Sinne, dass Du<br />
sie ausgeben kannst,<br />
die Länge ermitteln kannst,<br />
sie nach Inhalten durchsuchen kannst,<br />
usw. usw.</p>
<p><strong>Aber</strong>:<br />
Du kannst es nicht auf die selbe Art und Weise tun! <strong>Wie</strong> Du die einzelnen Aufgaben erledigst, unterscheidet sich schon.<br />
Du kannst also <strong>nicht</strong> eine Aufgabe mit einem C-String erledigen, danach einfach die Variablendeklaration von char * auf std::string ändern, den Rest unverändert belassen und dann erwarten, dass alles funktioniert!<br />
Genausowenig natürlich umgekehrt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284776</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:21:56 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:26:40 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Wie kommst Du über die C++ Reference auf den C++ String? Denn wenn ich bei C++ Reference nach C Strings suche, dann finde ich bloß C Strings.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ähm, du willst die Reference zu &quot;String&quot; nicht zo &quot;C-String&quot;...<br />
Suchmaschinen benutzen ist doch einfach! Such nach dem was du willst und nicht nach dem was du nicht wissen willst..</p>
<p>Da stellst du dich jetzt blöd an.. Wenn du nicht nach &quot;c++ string&quot; suchst, bekommst du es auch nicht. Wenn du zwei Kugeln Schokoladeneis bestellst bekommst du auch keine zwei Kugeln Vanille..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284778</guid><dc:creator><![CDATA[kralo9]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:26:45 GMT]]></title><description><![CDATA[<p>kralo9 schrieb:</p>
<blockquote>
<p>Ähm, du willst die Reference zu &quot;String&quot; nicht zo &quot;C-String&quot;...<br />
Suchmaschinen benutzen ist doch einfach! Such nach dem was du willst und nicht nach dem was du nicht wissen willst..</p>
</blockquote>
<p>Die C++ Bibliotheken bzw. Funktionen werden ja unter der Rubrick &quot;Other&quot; geführt... Jetzt geht mir (endlich) ein kleines Licht auf...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284780</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:28:59 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Willst Du mir jetzt die Schuld dafür geben, dass ich es von der Schule aus so lerne???</p>
</blockquote>
<p>Man kann auch außerhalb von der Schule lernen.(Internet,Bücher,etc.)</p>
<p>0x0ERROR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284783</guid><dc:creator><![CDATA[0x0ERROR]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:29:09 GMT]]></title><description><![CDATA[<p>Du kannst mit C-Strings auch bei C++ arbeiten.</p>
<p>C-Strings sind eine Vereinbarung (Nullterminiertes char-Array)</p>
<p>string in C++ ist ein eigener (neuer) Datentyp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284784</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:29:09 GMT</pubDate></item><item><title><![CDATA[Reply to Stringlänge berechen on Mon, 31 Dec 2012 14:30:18 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Die C++ Bibliotheken bzw. Funktionen werden ja unter der Rubrick &quot;Other&quot; geführt... Jetzt geht mir (endlich) ein kleines Licht auf...</p>
</blockquote>
<p>Nein!<br />
Unter 'Other' wird geführt, was nicht zu Containern und In/Output gehört! Auch dort geht es um C++!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284785</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 31 Dec 2012 14:30:18 GMT</pubDate></item></channel></rss>