<?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[Wiedermal string nach *char]]></title><description><![CDATA[<p>Ja ich weiß es gibt sehr viele Beiträge zu diesem Thema, allerdings passt keines so wie ich es mir vorstelle!</p>
<p>Ich habe einen string mit 178 Zeichen.</p>
<p>Beispiel:<br />
03456789ABCDEF10111213141516171.........</p>
<p>das soll dann in einem char auc[178] abgespeichert werden</p>
<p>auc[0] = 0x0<br />
auc[1] = 0x3<br />
auc[2] = 0x4<br />
auc[3] = 0x5<br />
auc[4] = 0x6 usw.</p>
<p>Hab das schon mit strstream probiert, aber erhalte da dann nur immer den Wert für das Zeichen z.B '3' 0x33.</p>
<pre><code class="language-cpp">unsigned char uc;
strstream str_string( string.c_str( )); 
str_string &gt;&gt; hex &gt;&gt; uc;
</code></pre>
<p>Gibt es noch irgend einen Manipulator den ich da einsetzen könnte?<br />
Oder, wo liegt mein Fehler?</p>
<p>Danke Stumpf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211367/wiedermal-string-nach-char</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 04:40:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211367.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Apr 2008 14:36:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wiedermal string nach *char on Tue, 22 Apr 2008 14:36:21 GMT]]></title><description><![CDATA[<p>Ja ich weiß es gibt sehr viele Beiträge zu diesem Thema, allerdings passt keines so wie ich es mir vorstelle!</p>
<p>Ich habe einen string mit 178 Zeichen.</p>
<p>Beispiel:<br />
03456789ABCDEF10111213141516171.........</p>
<p>das soll dann in einem char auc[178] abgespeichert werden</p>
<p>auc[0] = 0x0<br />
auc[1] = 0x3<br />
auc[2] = 0x4<br />
auc[3] = 0x5<br />
auc[4] = 0x6 usw.</p>
<p>Hab das schon mit strstream probiert, aber erhalte da dann nur immer den Wert für das Zeichen z.B '3' 0x33.</p>
<pre><code class="language-cpp">unsigned char uc;
strstream str_string( string.c_str( )); 
str_string &gt;&gt; hex &gt;&gt; uc;
</code></pre>
<p>Gibt es noch irgend einen Manipulator den ich da einsetzen könnte?<br />
Oder, wo liegt mein Fehler?</p>
<p>Danke Stumpf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496235</guid><dc:creator><![CDATA[Stumpf]]></dc:creator><pubDate>Tue, 22 Apr 2008 14:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Tue, 22 Apr 2008 14:54:07 GMT]]></title><description><![CDATA[<p>Wenn ich Dich richtig verstanden habe, willst Du einen std::string in ein char-array speichern. Das kann man z.B. so machen:</p>
<pre><code class="language-cpp">#include &lt;cstring&gt;
#include &lt;string&gt;

int main()
{
    std::string a = &quot;abcdefghig&quot;;
    char b[178];
    strcpy(b, a.c_str());
}
</code></pre>
<p>Alternativ kann man auch direkt auf die einzelnen Zeichen im String zugreifen:</p>
<pre><code class="language-cpp">std::string a = &quot;sdfsdfsdfdf&quot;;
for(int i = 0; i &lt; a.size(); ++i)
{
    std::cout &lt;&lt; a[i] &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496251</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 22 Apr 2008 14:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Tue, 22 Apr 2008 14:58:58 GMT]]></title><description><![CDATA[<p>Stumpf schrieb:</p>
<blockquote>
<p>...aber erhalte da dann nur immer den Wert für das Zeichen z.B '3' 0x33....</p>
</blockquote>
<p>Klar ! Ist es doch auch.</p>
<p>Wenn schon, dann geben herkömmliche Tastaturen nur die Alt-Taste zur Eingabe von nichtdruckbaren Zeichen an.<br />
&quot;0x3&quot; ist ein String und wenn Du den eingeben, aber am Ende in einem char den Wert 0x3 stehen haben möchtest, kommst Du um eine explizite Umwandlung nicht herum.<br />
Also: Zeichenweise den String einlesen, Zeichen auf Wert abbilden ('3' -&gt; 3) und dann Halbbytes zusammenfassen (0x10*0x3 + 0xa -&gt; 0x3a).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496252</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 22 Apr 2008 14:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 11:12:28 GMT]]></title><description><![CDATA[<p>Ich habe mein Problem anscheinend nicht korrekt beschrieben.</p>
<p>Ich bekomme aus einem String folgende Daten</p>
<p>30A035</p>
<p>das sind HEX Daten 0x30 0xA0 0x35 entsprechen also den Werten 48, 160 und 53</p>
<p>Diese Werte sollen dann auch in dem Array stehen:</p>
<p>auc[0] = 0x30 --&gt; 48<br />
auc[1] = 0xA0 --&gt; 160<br />
auc[2] = 0x35 --&gt; 53</p>
<p>Das heißt ich muss immer zwei Zeichen einlesen als Hex bewerten, und dann im Array abspeichern. Aber wie?</p>
<p>Ich glaub ich seh gerade den Wald vor lauter Bäumen nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496757</guid><dc:creator><![CDATA[Stumpf]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 11:21:40 GMT]]></title><description><![CDATA[<p>In diese Richtung?</p>
<pre><code class="language-cpp">unsigned char uc;
stringstream s( str.substr(0, 2) );
s &gt;&gt; hex &gt;&gt; uc;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496764</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 11:35:26 GMT]]></title><description><![CDATA[<p>Stumpf schrieb:</p>
<blockquote>
<p>....<br />
Das heißt ich muss immer zwei Zeichen einlesen als Hex bewerten, und dann im Array abspeichern. Aber wie?...</p>
</blockquote>
<p>äh - genau das habe ich doch beschrieben:</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Also: Zeichenweise den String einlesen, Zeichen auf Wert abbilden ('3' -&gt; 3) und dann Halbbytes zusammenfassen (0x10*0x3 + 0xa -&gt; 0x3a).</p>
</blockquote>
<p>Oder von mir aus im Code</p>
<pre><code class="language-cpp">static map&lt;unsigned char, unsigned int&gt; char2Val;
   char2Val['0'] = 0; char2Val['1'] = 1; char2Val['2'] = 2; char2Val['3'] = 3;   char2Val['4'] = 4; char2Val['5'] = 5; 
   char2Val['6'] = 6;   char2Val['7'] = 7;    char2Val['8'] = 8; char2Val['9'] = 9;   char2Val['a'] = 10;   char2Val['A'] = 10; 
   char2Val['b'] = 11;  char2Val['B'] = 11;   char2Val['c'] = 12; char2Val['C'] = 12;  char2Val['d'] = 13;   char2Val['D'] = 13; 
   char2Val['e'] = 14;  char2Val['E'] = 14;   char2Val['f'] = 15; char2Val['F'] = 16; 

   unsigned char array[10];
   string str = &quot;30A035&quot;;

   size_t i;
   for(i=0;i&lt;3; ++i) {
      array[i] = 0x10*char2Val[str[2*i&rsqb;&rsqb; + char2Val[str[2*i+1&rsqb;&rsqb;,
      cout &lt;&lt; hex &lt;&lt; array[i] &lt;&lt; &quot; &quot;;
   }
</code></pre>
<p>(OK, das mit der map kann man noch schöer machen, aber es geht hier ums Prinzip)</p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>EDIT: Lord's Variante ist natürlich schöner. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496770</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 23 Apr 2008 11:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 14:10:04 GMT]]></title><description><![CDATA[<p>Vielleicht bin einfach nur zu blöd!</p>
<pre><code class="language-cpp">inline unsigned char ConvertHexStringToChar( std::string str_string )
{
  unsigned char uc;
  stringstream istr_string = str_string.c_str();
  istr_string &gt;&gt; hex &gt;&gt; uc; 
  return( uc );
}
</code></pre>
<p>Er schmeißt mir hier die Meldung raus!<br />
error C2440: 'initializing' : cannot convert from 'const char *' to 'std::basic_stringstream&lt;_Elem,_Traits,_Alloc&gt;'</p>
<p>Er kann den String nicht zuordnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496932</guid><dc:creator><![CDATA[Stumpf]]></dc:creator><pubDate>Wed, 23 Apr 2008 14:10:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 14:29:10 GMT]]></title><description><![CDATA[<p>Du solltest auch nicht nach Belieben den hier vorgestellten Code ändern .... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Kann doch nicht so schwer sein, 3 Zeilen abzutippen....</p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S. kleiner Tipp: Lord's Code erzeugt Dir natürlich nur EIN Byte ... für n Bytes musst Du ihn entsprechend oft anwenden (und Dir überlegen, welcher SubString dabei jeweils verwendet werden soll).<br />
kleiner Tipp2: Denk gleich an Fehlerbehandlung ....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496943</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 23 Apr 2008 14:29:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wiedermal string nach *char on Wed, 23 Apr 2008 14:31:11 GMT]]></title><description><![CDATA[<p>OK</p>
<p>hab's gesehen!</p>
<p>Bin zu blöd Sorry !!!</p>
<p>Danke nun denke ich sollte es gehen!</p>
<p>Gruß<br />
Stumpf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496950</guid><dc:creator><![CDATA[Stumpf]]></dc:creator><pubDate>Wed, 23 Apr 2008 14:31:11 GMT</pubDate></item></channel></rss>