<?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[Probleme mit char]]></title><description><![CDATA[<p>Also ich möchte ein char &quot;123/456&quot; in 123 zerlegen. Also nur die ersten 3 Stellen des chars haben.</p>
<p>char ist definiert:<br />
char * s= new char[size];</p>
<p>Dabei habe ich versucht die Elemente des chars einzeln anzusprechen:</p>
<pre><code class="language-cpp">char * tmp= new char[3];
tmp[0] = s[0];
tmp[1] = s[1];
tmp[2] = s[2];
</code></pre>
<p>tmp ist dann aber 7 Stellen gross und mit 123yyyy aufgefüllt.</p>
<p>Dann habe ich versucht das char in einen std::string umzuwandeln, um substring anwenden zu können.</p>
<pre><code class="language-cpp">char test[7];

    // Text nach char Array kopieren
    strcpy(test, &quot;s&quot;);

    // C++ String deklarieren
    std::string str;

    // char Array dem String zuweisen
    str = test;
</code></pre>
<p>liefert in VC 6.0 Fehler<br />
ebenso:</p>
<pre><code class="language-cpp">std::string a( &quot;test1&quot; );
CString b(  &quot;test2&quot;  );

// CString -&gt; std::string
a = LPCTSTR( b );
</code></pre>
<p>Kann mir jemand helfen? Hab keine Idee mehr..<br />
vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174719/probleme-mit-char</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 00:19:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174719.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Mar 2007 13:36:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:36:14 GMT]]></title><description><![CDATA[<p>Also ich möchte ein char &quot;123/456&quot; in 123 zerlegen. Also nur die ersten 3 Stellen des chars haben.</p>
<p>char ist definiert:<br />
char * s= new char[size];</p>
<p>Dabei habe ich versucht die Elemente des chars einzeln anzusprechen:</p>
<pre><code class="language-cpp">char * tmp= new char[3];
tmp[0] = s[0];
tmp[1] = s[1];
tmp[2] = s[2];
</code></pre>
<p>tmp ist dann aber 7 Stellen gross und mit 123yyyy aufgefüllt.</p>
<p>Dann habe ich versucht das char in einen std::string umzuwandeln, um substring anwenden zu können.</p>
<pre><code class="language-cpp">char test[7];

    // Text nach char Array kopieren
    strcpy(test, &quot;s&quot;);

    // C++ String deklarieren
    std::string str;

    // char Array dem String zuweisen
    str = test;
</code></pre>
<p>liefert in VC 6.0 Fehler<br />
ebenso:</p>
<pre><code class="language-cpp">std::string a( &quot;test1&quot; );
CString b(  &quot;test2&quot;  );

// CString -&gt; std::string
a = LPCTSTR( b );
</code></pre>
<p>Kann mir jemand helfen? Hab keine Idee mehr..<br />
vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238079</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:36:14 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:45:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* s = &quot;123/456&quot;;
char tmp[4]; // 3 Zeichen + Terminator;
strncpy(tmp, s, 3);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1238089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238089</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:45:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:45:49 GMT]]></title><description><![CDATA[<p>Erstmal geht es hier nicht um char (einzelne Zeichen), sondern um char-Arrays (Zeichenketten) - es ist interessant, wie oft das durcheinandergeworfen wird.</p>
<p>Zweitens arbeitet C (und die char*-Routinen in C++) mit sog. &quot;nullterminierten Strings&quot;, d.h. das Ende einer Zeichenkette wird durch ein '\0' gekennzeichnet. Du hast dieses Endezeichen weggelassen, deshalb liest C++ hinter dem von dir reservierten Bereich weiter, bis zufällig eine 0 im Speicher kommt.</p>
<p>Drittens: Sollen wir jetzt raten, was für Fehler dein Compiler ausspuckt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238090</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:48:35 GMT]]></title><description><![CDATA[<p>char-Arrays müssen mit einem \0 abgeschlossen werden. Dieses benötigt ebenfalls einen Speicherplatz. Wenn Du also 3 Zeichen benötigst, muß die char-Array-Größe 4 sein:<br />
Es fehlt dann also nur:</p>
<pre><code class="language-cpp">tmp[3] = 0;
</code></pre>
<p>[EDIT] Da hab ich wohl viel zu langsam getippt... <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/1238093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238093</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:47:39 GMT]]></title><description><![CDATA[<p>&lt;---&gt; schrieb:</p>
<blockquote>
<pre><code class="language-cpp">char * tmp= new char[3];
tmp[0] = s[0];
tmp[1] = s[1];
tmp[2] = s[2];
</code></pre>
<p>tmp ist dann aber 7 Stellen gross und mit 123yyyy aufgefüllt.</p>
</blockquote>
<p>Du hast die Nullterminierung vergessen:</p>
<pre><code class="language-cpp">char* tmp = new char[4];
// ...
tmp[3] = '\0';
</code></pre>
<p>... aber so macht man das in C++ nicht. 'std::string' ist schon die korrekte Lösung. Wenn bei Dir ein Fehler kommt, wäre es interessant, die Fehlermeldung zu kennen, sonst kann man Dir nicht helfen. Ich vermute mal, Du hast vergessen, den Header &lt;string&gt; einzubinden.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

int main()
{
    std::string test = &quot;123/456&quot;;
    std::string x123 = test.substr(0, 3);
    std::cout &lt;&lt; x123 &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1238092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238092</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:47:39 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 13:48:14 GMT]]></title><description><![CDATA[<p>Eine andere Möglichkeit wäre:</p>
<pre><code class="language-cpp">const char *fnord = &quot;123/456&quot;;
std::string fubar(fnord, fnord + 3); // fubar == &quot;123&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1238095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238095</guid><dc:creator><![CDATA[nillable]]></dc:creator><pubDate>Fri, 02 Mar 2007 13:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit char on Fri, 02 Mar 2007 14:09:39 GMT]]></title><description><![CDATA[<p>danke!</p>
<p>Das fehlende 0 Zeichen wars.</p>
<p>Bei den Varianten, die Fehler lieferenten vermutlich auch. Denn ich habe dort auch mit 3 Zeichen initialisiert. Ich habe dort keine Fehlermeldung bekommen, sondern das Programm ist zur Laufzeit abgestürzt.</p>
<p>Jetzt gehts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238115</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Fri, 02 Mar 2007 14:09:39 GMT</pubDate></item></channel></rss>