<?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[substr problem]]></title><description><![CDATA[<p>liebe community,</p>
<p>ich sende via socket eine http anfrage und bekomme eine antwort. nun will ich einen bestimmten teil dieser antwort auslesen. dazu habe ich mir folgenden code geschrieben:</p>
<pre><code class="language-cpp">string cut_http (string text)
{
	size_t pos;

	pos = text.find(&quot;ebene\&quot;&gt;&quot;);

	string s = text.substr(pos+8, pos+12);

	cout &lt;&lt; s &lt;&lt; endl;
}
</code></pre>
<ol>
<li>Suche in der HTTP Antwort nach ebene&quot;&gt;</li>
<li>Gehe 8 chars von dem &quot;Fundort&quot; weiter.</li>
<li>Weise dem string s den Bereich vom string text von pos+8 bis pos+12 zu.</li>
<li>Gebe den String s aus.</li>
</ol>
<p>Nun würde ich mir erwarten, dass auf dem Bildschirn &quot;test1&quot; zu sehen ist, was ich jedoch zu sehen bekomme, ist beinnahe die komplette http antwort:</p>
<pre><code>local@osiriys:~/Desktop/coding/http$ ./main 
test1&lt;br&gt;test2&lt;br&gt;test3&lt;br&gt;asdf&lt;br&gt;asdf&lt;br&gt;test&lt;br&gt;asdf&lt;br&gt;ert&lt;br&gt;sdag&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;form method=&quot;POST&quot; action=&quot;index.php&quot;&gt;
&lt;input type=&quot;text&quot; size=60 name=&quot;cmd&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;execute&quot;&gt;
&lt;/form&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</code></pre>
<p>Irgendwer ne Idee?<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230350/substr-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 09:34:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230350.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Dec 2008 23:48:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to substr problem on Wed, 24 Dec 2008 23:48:50 GMT]]></title><description><![CDATA[<p>liebe community,</p>
<p>ich sende via socket eine http anfrage und bekomme eine antwort. nun will ich einen bestimmten teil dieser antwort auslesen. dazu habe ich mir folgenden code geschrieben:</p>
<pre><code class="language-cpp">string cut_http (string text)
{
	size_t pos;

	pos = text.find(&quot;ebene\&quot;&gt;&quot;);

	string s = text.substr(pos+8, pos+12);

	cout &lt;&lt; s &lt;&lt; endl;
}
</code></pre>
<ol>
<li>Suche in der HTTP Antwort nach ebene&quot;&gt;</li>
<li>Gehe 8 chars von dem &quot;Fundort&quot; weiter.</li>
<li>Weise dem string s den Bereich vom string text von pos+8 bis pos+12 zu.</li>
<li>Gebe den String s aus.</li>
</ol>
<p>Nun würde ich mir erwarten, dass auf dem Bildschirn &quot;test1&quot; zu sehen ist, was ich jedoch zu sehen bekomme, ist beinnahe die komplette http antwort:</p>
<pre><code>local@osiriys:~/Desktop/coding/http$ ./main 
test1&lt;br&gt;test2&lt;br&gt;test3&lt;br&gt;asdf&lt;br&gt;asdf&lt;br&gt;test&lt;br&gt;asdf&lt;br&gt;ert&lt;br&gt;sdag&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;form method=&quot;POST&quot; action=&quot;index.php&quot;&gt;
&lt;input type=&quot;text&quot; size=60 name=&quot;cmd&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;execute&quot;&gt;
&lt;/form&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</code></pre>
<p>Irgendwer ne Idee?<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635140</guid><dc:creator><![CDATA[substrprob]]></dc:creator><pubDate>Wed, 24 Dec 2008 23:48:50 GMT</pubDate></item><item><title><![CDATA[Reply to substr problem on Thu, 25 Dec 2008 00:47:56 GMT]]></title><description><![CDATA[<p>Weiß nicht, ob ich das hunderprozentig verstanden habe, aber ich habe substr so in Erinnerung, dass man die Länge des zu extrahierenden Strings angibt, nicht die Endposition.</p>
<p>Außerdem solltest Du die Startposition nicht hardcoden sondern vom Suchstring abhängig machen.</p>
<p>Dh. sowas in der Art:</p>
<pre><code class="language-cpp">string cut_http(const string&amp; s)                                                                     
{                                                                                                    
    const string searchString = &quot;ebene\&quot;&gt;&quot;;                                                          
    const size_t numOfCharsToGet = 4;                                                                   
    const size_t pos = s.find(searchString);                                                         
    return s.substr(pos+searchString.length(), numOfCharsToGet);                                     
}
</code></pre>
<p>Ich verschiebe mal nach C++, damit die diesbezüglich kompetenteren Kollegen das fachkundig zerpflücken können. :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635152</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Thu, 25 Dec 2008 00:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to substr problem on Thu, 25 Dec 2008 00:48:44 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-4178.html" rel="nofollow">nman</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-5.html" rel="nofollow">Linux/Unix</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635153</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 25 Dec 2008 00:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to substr problem on Thu, 25 Dec 2008 10:39:27 GMT]]></title><description><![CDATA[<p>Danke für die Antwort.<br />
Natürlich stimmt deine Antwort, war gestern wohl noch ein bisschen zu betrunken.<br />
Tut mir leid für die dumme Frage.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635220</guid><dc:creator><![CDATA[substrprob]]></dc:creator><pubDate>Thu, 25 Dec 2008 10:39:27 GMT</pubDate></item><item><title><![CDATA[Reply to substr problem on Thu, 25 Dec 2008 20:20:42 GMT]]></title><description><![CDATA[<p>der eigentliche fehler lag aber wo anders:</p>
<pre><code class="language-cpp">string cut_http (string text) 
{ 
    const std::size_type pos = text.find(&quot;ebene\&quot;&gt;&quot;); //ich finds so übersichtlicher...

// so was in der art fehlt:
//if (pos == std::string::npos) return &quot;&quot;;
    string s = text.substr(pos+8, 4); //hier aber das hatten wir jz schon ^^

    cout &lt;&lt; s &lt;&lt; endl;
    return s;
}
</code></pre>
<p>jz musst du hier nur noch (wie nman das schon vorgemacht hat) die festen Werte in irgendwelche Variablen packen damit du das auch iwann mal ändern kannst ^^</p>
<p>da std::string::npos ja ~0 (-1) ist, wird beim rechnen +4 natürlich alles ab dem 3. Zeichen genommen - falls iwann also mal die zu suchende zeichenkette nicht dabei ist, wird alles kaputt gehen ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635478</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 25 Dec 2008 20:20:42 GMT</pubDate></item></channel></rss>