<?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[substring -&amp;gt; char]]></title><description><![CDATA[<p>Hi Zusammen</p>
<p>Ich hab folgendes Problem:</p>
<p>Ich habe einen string eingabe und einen substring partEingabe.</p>
<p>Der substring wird definiert duch:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

string partEingabe = eingabe-&gt;substr(5, 1);
</code></pre>
<p>nun möchte ich mit einer switch anweisung den partEingabe string auf bestimmte Zeichen überprüfen. Leider funktioniert dies mit dem Datentyp string nicht.</p>
<p>Wie bringe ich den substring (1 Zeichen) in ein &quot;char tryZeichen&quot;</p>
<p>Danke und Gruss<br />
TTS</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/278047/substring-gt-char</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 15:31:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278047.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Nov 2010 08:10:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 08:10:47 GMT]]></title><description><![CDATA[<p>Hi Zusammen</p>
<p>Ich hab folgendes Problem:</p>
<p>Ich habe einen string eingabe und einen substring partEingabe.</p>
<p>Der substring wird definiert duch:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using namespace std;

string partEingabe = eingabe-&gt;substr(5, 1);
</code></pre>
<p>nun möchte ich mit einer switch anweisung den partEingabe string auf bestimmte Zeichen überprüfen. Leider funktioniert dies mit dem Datentyp string nicht.</p>
<p>Wie bringe ich den substring (1 Zeichen) in ein &quot;char tryZeichen&quot;</p>
<p>Danke und Gruss<br />
TTS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987322</guid><dc:creator><![CDATA[TTS]]></dc:creator><pubDate>Mon, 29 Nov 2010 08:10:47 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 08:21:30 GMT]]></title><description><![CDATA[<p>Indem du dir nur ein Zeichen aus dem string holst. Zum Beispiel über die Methode <code>at()</code> .</p>
<p><a href="http://www.cppreference.com/wiki/string/basic_string/at" rel="nofollow">http://www.cppreference.com/wiki/string/basic_string/at</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987328</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 08:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 08:22:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>lass das substr weg und hol dir direkt den char mit</p>
<pre><code class="language-cpp">char tryZeichen = eingabe-&gt;at(5);
// oder
char tryZeichen = (*eingabe)[5];
</code></pre>
<p>Vorher aber noch die Länge abfragen, ob 'eingabe' überhaupt lang genug ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987329</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 29 Nov 2010 08:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 08:32:48 GMT]]></title><description><![CDATA[<p>Jockelx schrieb:</p>
<blockquote>
<p>Hi,</p>
<p>lass das substr weg und hol dir direkt den char mit</p>
<pre><code class="language-cpp">char tryZeichen = eingabe-&gt;at(5);
// oder
char tryZeichen = (*eingabe)[5];
</code></pre>
<p>Vorher aber noch die Länge abfragen, ob 'eingabe' überhaupt lang genug ist.</p>
</blockquote>
<p>Danke hat geklappt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987333</guid><dc:creator><![CDATA[TTS]]></dc:creator><pubDate>Mon, 29 Nov 2010 08:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 08:57:10 GMT]]></title><description><![CDATA[<p>Jedoch komme ich schon zum nächten Problem, das ich nicht verstehe.</p>
<p>Das ganze vorhin war nur etwas PseudoCode. Hier ist die richtige Verwendung.</p>
<p>Ich möchte, wenn eine Switch anweisung zutrifft dem &quot;string *delayCounterValue&quot; einen wert zuweisen z.B. &quot;0..488&quot;</p>
<p>Funktion:</p>
<pre><code class="language-cpp">bool CTransitObserver::Observe(string *receivedData, unsigned long *numberOfBytesReceived, string *bitError, string *delayCounterValue)
</code></pre>
<p>Switch:</p>
<pre><code class="language-cpp">if (bytesReceived &gt;= 1)
	{
		*bitError = receivedData-&gt;substr(0,4);
		char switchData = receivedData-&gt;at(5);

		switch(switchData)
		{
		case 0:
		*delayCounterValue = &quot;0..488&quot;;
		break;

...
</code></pre>
<p>Das scheint alles zu Funktioneren. Jedoch im main, wo der *delayCounterValue ausgegeben werden soll, passiert einfach nichts. Ich habe keine Ahnung was das Problem ist -.-</p>
<p>Ich hoffe ihr wisst weiter.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987344</guid><dc:creator><![CDATA[TTS]]></dc:creator><pubDate>Mon, 29 Nov 2010 08:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 09:05:16 GMT]]></title><description><![CDATA[<p>Was heißt es scheint zu funktionieren? Nimm den Debugger und schau nach, ob es so funktioniert, wie es soll. Und schau dir mal Referenzen an. Ich glaub nicht, dass du einen Zeiger auf deine strings benötigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987351</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 09:05:16 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 09:11:25 GMT]]></title><description><![CDATA[<p>Nick Unbekannt schrieb:</p>
<blockquote>
<p>Was heißt es scheint zu funktionieren? Nimm den Debugger und schau nach, ob es so funktioniert, wie es soll. Und schau dir mal Referenzen an. Ich glaub nicht, dass du einen Zeiger auf deine strings benötigst.</p>
</blockquote>
<p>Mit es scheint zu funktionieren, meine ich, dass der Compiler nicht reklamiert. Jedoch sollte es mir den zugewiesenen Wert auch ausgeben und in ein LogFile eintragen. Diese beiden Dinge funktionieren aber nicht.</p>
<p>Hmm.. habs zuerst ohne Pointer versucht habs nicht hinbekommen. Diese Variablen sind im Main.cpp erstellt worden und im transitObserver.cpp einen Wert zugewiesen. Ich hab keine Ahnung wie dies ohne Pointer funktionieren soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987352</guid><dc:creator><![CDATA[TTS]]></dc:creator><pubDate>Mon, 29 Nov 2010 09:11:25 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 09:20:49 GMT]]></title><description><![CDATA[<p>TTS schrieb:</p>
<blockquote>
<p>Mit es scheint zu funktionieren, meine ich, dass der Compiler nicht reklamiert. Jedoch sollte es mir den zugewiesenen Wert auch ausgeben und in ein LogFile eintragen. Diese beiden Dinge funktionieren aber nicht.</p>
</blockquote>
<p>Deswegen kann man ja mit einem Debugger den Programmablauf verfolgen. Wenn dir der Debugger, warum auch immer, unlogisch erscheint, dann kannst du auch an alle relevanten Stellen ein printf schreiben und dir die Position und ggf. ein paar Variablen ausgeben lassen. Du musst dann nur noch schauen, ob die Reihenfolge und Inhalte deinen Erwartungen entspricht. Das macht aber alles auch der Debugger und noch vieles mehr.</p>
<p>TTS schrieb:</p>
<blockquote>
<p>Hmm.. habs zuerst ohne Pointer versucht habs nicht hinbekommen. Diese Variablen sind im Main.cpp erstellt worden und im transitObserver.cpp einen Wert zugewiesen. Ich hab keine Ahnung wie dies ohne Pointer funktionieren soll.</p>
</blockquote>
<p>Mit Referenzen! Statt dem Stern * für Zeiger nutzt du ein Und &amp;. Damit kannst du auf den String ohne Dereferenzierung zugreifen, arbeitest aber trotzdem nicht auf einer Kopie. Und es kann auch nicht passieren, dass du ein nicht-string derefenzierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1987359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987359</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 29 Nov 2010 09:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to substring -&amp;gt; char on Mon, 29 Nov 2010 09:54:28 GMT]]></title><description><![CDATA[<p>Hat sich erledigt:</p>
<p>Fehler:</p>
<pre><code class="language-cpp">case &quot;A&quot;:
...
break;
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">case 'A':
...
break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1987374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1987374</guid><dc:creator><![CDATA[TTS]]></dc:creator><pubDate>Mon, 29 Nov 2010 09:54:28 GMT</pubDate></item></channel></rss>