<?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 bei der Stringlänge]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen String mit einer Länge von 0-16 Zeichen.<br />
Diesen String muss ich nun in ein Zweidimensionales Array kopieren.<br />
Dazu brauch ich nun ein Array mit 4 mal 4 Feldern.</p>
<pre><code class="language-cpp">for(j=0; j&lt;4; j++)
{			
hex[10][j] = szDescription[j];
hex[11][j] = szDescription[j+4];
hex[12][j] = szDescription[j+8];
hex[13][j] = szDescription[j+12];
}
</code></pre>
<p>ich hatte vor es so zu machen.<br />
Wenn der String aus 16 Zeichen besteht ist das auch kein Problem, hat er allerdings weniger Zeichen bekomme ich ein ASSERT, da ich dann wohl ne leere Stelle hab, die ich kopieren möchte.</p>
<p>Hat jemand eine Idee, wie man so was machen kann??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170633/probleme-bei-der-stringlänge</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 03:46:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170633.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Jan 2007 08:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:14:44 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen String mit einer Länge von 0-16 Zeichen.<br />
Diesen String muss ich nun in ein Zweidimensionales Array kopieren.<br />
Dazu brauch ich nun ein Array mit 4 mal 4 Feldern.</p>
<pre><code class="language-cpp">for(j=0; j&lt;4; j++)
{			
hex[10][j] = szDescription[j];
hex[11][j] = szDescription[j+4];
hex[12][j] = szDescription[j+8];
hex[13][j] = szDescription[j+12];
}
</code></pre>
<p>ich hatte vor es so zu machen.<br />
Wenn der String aus 16 Zeichen besteht ist das auch kein Problem, hat er allerdings weniger Zeichen bekomme ich ein ASSERT, da ich dann wohl ne leere Stelle hab, die ich kopieren möchte.</p>
<p>Hat jemand eine Idee, wie man so was machen kann??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211750</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:14:44 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:23:53 GMT]]></title><description><![CDATA[<p>Was für einen String hast du denn vorliegen? (char*, CString, std::string, was anderes?) Eine Möglichkeit wäre es, vor jedem Speicherzugriff zu überprüfen, ob der String lang genug ist:</p>
<pre><code class="language-cpp">for(j=0; j&lt;4; j++)
{
  int len=szDescription.GetLength();
  if(len&gt;j)   hex[10][j] = szDescription[j];
  if(len&gt;j+4) hex[11][j] = szDescription[j+4];
  if(len&gt;j+8) hex[12][j] = szDescription[j+8];
  if(len&gt;j+12)hex[13][j] = szDescription[j+12];
}
</code></pre>
<p>Wesentlich eleganter ist es, den String vorher auf die nötige Länge zu bringen:</p>
<pre><code class="language-cpp">if(szDescription.GetLength()&lt;16) szDescription.GetBufferSetLength(16);
for(...)
  ...
szDescription.ReleasBuffer();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1211756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211756</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:27:44 GMT]]></title><description><![CDATA[<p>ich habe einen CString.<br />
Ich habe den String nun auf die gewünschte Länge gebracht indem ich einfach &quot; &quot; anhänge.</p>
<pre><code class="language-cpp">int StringLength1 = GetView()-&gt;szDescription.GetLength();
for(int k=0; k&lt;(16-Stringlength1); k++) szDescription += &quot; &quot;;
for(j=0; j&lt;4; j++)
{			
hex[10][j] = GetView()-&gt;szDescription[j];
hex[11][j] = GetView()-&gt;szDescription[j + 4];
hex[12][j] = GetView()-&gt;szDescription[j + 8];
hex[13][j] = GetView()-&gt;szDescription[j + 12];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1211760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211760</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:29:20 GMT]]></title><description><![CDATA[<p>Was macht denn szDescription.GetBufferSetLength(16); und szDescription.ReleasBuffer(); genau??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211761</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:38:29 GMT]]></title><description><![CDATA[<p>Warum schaust du dazu nicht in der MSDN nach, da sind die Methoden erklärt <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>
<p>GetBufferSetLength() gibt einen char*-Buffer auf den String-Inhalt heraus und setzt zusätzlich die Länge des Strings (eine reine SetLength()-Methode habe ich in der CString nicht gefunden, obwohl die mir lieber gewesen wäre). ReleaseBuffer() gibt diesen Buffer wieder frei und berechnet die Stringlänge neu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211765</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:40:55 GMT]]></title><description><![CDATA[<p>Welche Methode würdest du für sauberer halten, deine oder meine? Und warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211768</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:40:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:45:06 GMT]]></title><description><![CDATA[<p>Das kommt ganz darauf an, ob und wie du fehlende Eingabewerte kennzeichnen willst. Ich würde ehrlich gesagt keine von beiden verwenden, sondern mit std::string arbeiten. Oder ich würde einen zu kurzen Eingabestring von vornherein zurückweisen mit einer Fehlermeldung an den Benutzer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211775</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 08:59:47 GMT]]></title><description><![CDATA[<p>Also zurückweisen geht nicht, der Benutzer kann frei entscheiden wieviele chars er setzt.<br />
Da der String an ein gerät gesendet wird benutze ich meine Methode, da dort jedes Space mit einer &quot;20&quot; codiert ist.<br />
Bei deiner Methode werden dabei nicht gesetzte chars mit &quot;CD&quot; codiert.<br />
was das Gerät dann später ausgeben würde, ist mir dann unklar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211785</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:59:47 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 09:13:46 GMT]]></title><description><![CDATA[<p>maRKus23 schrieb:</p>
<blockquote>
<p>Also zurückweisen geht nicht, der Benutzer kann frei entscheiden wieviele chars er setzt.<br />
Da der String an ein gerät gesendet wird benutze ich meine Methode, da dort jedes Space mit einer &quot;20&quot; codiert ist.<br />
Bei deiner Methode werden dabei nicht gesetzte chars mit &quot;CD&quot; codiert.</p>
</blockquote>
<p>Also unter diesen Bedingungen ist deine Version vermutlich besser (oder das Zielgerät muß vor der Ausgabe überprüfen, was für Werte es bekommt). Aber da stellt sich die Frage, warum du den String überhaupt umsortieren willst.</p>
<p>PS: Deine andere Frage habe ich ins .NET Board verschoben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211797</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 09:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei der Stringlänge on Thu, 18 Jan 2007 10:36:11 GMT]]></title><description><![CDATA[<p>ich kann an das Gerät immer nur 4 Bytes senden, wegen firmware, deswegen das Array, haste das gemeint mit umsortieren?<br />
Ich sende noch mehr Werte und die sind halt alle in dieser Form.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211871</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 18 Jan 2007 10:36:11 GMT</pubDate></item></channel></rss>