<?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[String mit Steuerzeichen initialisieren]]></title><description><![CDATA[<p>Hi Leute,<br />
gleich mal ein bisschen Quelltext:</p>
<pre><code class="language-cpp">int favoriteFunction()
{
    std::string z64 = &quot;61615590737044764481&quot;;
    for(int i=0;i&lt;z64.size();i++)
    {
        z64[i]-=0x30;
    }

    //tue irgendwas 

    return 0;
}
</code></pre>
<p>Ich habe eine Funktion in der ich mehrere größere Strings anlege, die als Zeichen jedoch nur Ziffern enthalten. Also wie oben Werte zwischen '0' und '9'.<br />
Brauchen tue ich aber die Zeichen abzüglich der 0x30.</p>
<p>Ok, das ist jetzt vielleicht etwas komisch forumliert, aber ich hoffe klar.</p>
<p>Das obige Beispiel würde auch funktionieren, aber ich will die Strings gleich richtig initialisieren und nicht vorher wertvolle Rechenzeit verplempern bei jeden neuen Eintritt in die Funktion, weil ich alle Zeichen konvertieren muss.</p>
<p>Ich hoffe jemand kann mir helfen.<br />
viele Grüße</p>
<p>edit: laufindex angefügt sry</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285440/string-mit-steuerzeichen-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 07:59:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285440.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Apr 2011 14:58:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String mit Steuerzeichen initialisieren on Wed, 20 Apr 2011 14:59:39 GMT]]></title><description><![CDATA[<p>Hi Leute,<br />
gleich mal ein bisschen Quelltext:</p>
<pre><code class="language-cpp">int favoriteFunction()
{
    std::string z64 = &quot;61615590737044764481&quot;;
    for(int i=0;i&lt;z64.size();i++)
    {
        z64[i]-=0x30;
    }

    //tue irgendwas 

    return 0;
}
</code></pre>
<p>Ich habe eine Funktion in der ich mehrere größere Strings anlege, die als Zeichen jedoch nur Ziffern enthalten. Also wie oben Werte zwischen '0' und '9'.<br />
Brauchen tue ich aber die Zeichen abzüglich der 0x30.</p>
<p>Ok, das ist jetzt vielleicht etwas komisch forumliert, aber ich hoffe klar.</p>
<p>Das obige Beispiel würde auch funktionieren, aber ich will die Strings gleich richtig initialisieren und nicht vorher wertvolle Rechenzeit verplempern bei jeden neuen Eintritt in die Funktion, weil ich alle Zeichen konvertieren muss.</p>
<p>Ich hoffe jemand kann mir helfen.<br />
viele Grüße</p>
<p>edit: laufindex angefügt sry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052123</guid><dc:creator><![CDATA[TheAngryPirat]]></dc:creator><pubDate>Wed, 20 Apr 2011 14:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to String mit Steuerzeichen initialisieren on Wed, 20 Apr 2011 15:04:58 GMT]]></title><description><![CDATA[<p>Z.B. &quot;\x05&quot; für das das Zeichen mit dem ASCII Code 5.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052126</guid><dc:creator><![CDATA[Oberon_0]]></dc:creator><pubDate>Wed, 20 Apr 2011 15:04:58 GMT</pubDate></item><item><title><![CDATA[Reply to String mit Steuerzeichen initialisieren on Wed, 20 Apr 2011 15:11:10 GMT]]></title><description><![CDATA[<p>vielen dank, habs auch gerade gefunden.<br />
<a href="http://de.wikipedia.org/wiki/Escape-Sequenz" rel="nofollow">http://de.wikipedia.org/wiki/Escape-Sequenz</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2052127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052127</guid><dc:creator><![CDATA[TheAngryPirat]]></dc:creator><pubDate>Wed, 20 Apr 2011 15:11:10 GMT</pubDate></item><item><title><![CDATA[Reply to String mit Steuerzeichen initialisieren on Wed, 20 Apr 2011 16:36:56 GMT]]></title><description><![CDATA[<p>Halt mal! Dann musst du aber bei Nullen aufpassen. Folgendes wäre in diesem Fall für dich vielleicht geschickt:</p>
<pre><code class="language-cpp">#define STRING_CONSTANT_CORRECT_LENGTH(str) std::string(str, sizeof(str)-1)

int main()
{
    std::string constant = STRING_CONSTANT_CORRECT_LENGTH(&quot;\x1\x0\x5\x7&quot;); 
}
</code></pre>
<p>Leider können sich Makros nicht rekursiv aufrufen, sonst hätte man ja so etwas schönes machen können: <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>
<pre><code class="language-cpp">#define NOTHING()

#define NUMBER_TO_STRING_CONSTANT_HELPER0 NUMBER_TO_STRING_CONSTANT0
#define NUMBER_TO_STRING_CONSTANT_HELPER1 NUMBER_TO_STRING_CONSTANT1
#define NUMBER_TO_STRING_CONSTANT_HELPER2 NUMBER_TO_STRING_CONSTANT2
#define NUMBER_TO_STRING_CONSTANT_HELPER3 NUMBER_TO_STRING_CONSTANT3
#define NUMBER_TO_STRING_CONSTANT_HELPER4 NUMBER_TO_STRING_CONSTANT4
#define NUMBER_TO_STRING_CONSTANT_HELPER5 NUMBER_TO_STRING_CONSTANT5
#define NUMBER_TO_STRING_CONSTANT_HELPER6 NUMBER_TO_STRING_CONSTANT6
#define NUMBER_TO_STRING_CONSTANT_HELPER7 NUMBER_TO_STRING_CONSTANT7
#define NUMBER_TO_STRING_CONSTANT_HELPER8 NUMBER_TO_STRING_CONSTANT8
#define NUMBER_TO_STRING_CONSTANT_HELPER9 NUMBER_TO_STRING_CONSTANT9
#define NUMBER_TO_STRING_CONSTANT_HELPER NUMBER_TO_STRING_CONSTANT

#define NUMBER_STRING_LITERAL_HELPER(...) std::string(&quot;&quot; NUMBER_TO_STRING_CONSTANT_HELPER##__VA_ARGS__ )  , sizeof( &quot;&quot; NUMBER_TO_STRING_CONSTANT_HELPER##__VA_ARGS__ ) ) - 1 )
#define NUMBER_STRING_LITERAL(...) NUMBER_STRING_LITERAL_HELPER(__VA_ARGS__)

#define NUMBER_TO_STRING_CONSTANT0 &quot;\x0&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT1 &quot;\x1&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT2 &quot;\x2&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT3 &quot;\x3&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT4 &quot;\x4&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT5 &quot;\x5&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT6 &quot;\x6&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT7 &quot;\x7&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT8 &quot;\x8&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT9 &quot;\x9&quot; NUMBER_STRING_LITERAL(
#define NUMBER_TO_STRING_CONSTANT NOTHING(

int main()
{
	std::string str = NUMBER_STRING_LITERAL(1, 0, 5, 7);
	std::cout &lt;&lt; str &lt;&lt; &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2052156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2052156</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 20 Apr 2011 16:36:56 GMT</pubDate></item></channel></rss>