<?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[Bruch in String]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen Bruch in der Form (als String) &quot;x/y&quot;. x und y stehen für<br />
beliebige Zahlen. Ich möchte jetzt eine Funktion schreiben, die überprüft, ob<br />
der string str, in der oben gezeigten Form ist. Ich weiß, mit boost könnte man<br />
das wahrscheinlich einfacher machen, aber ich würde gerne wissen, wie ich das<br />
machen könnte.</p>
<pre><code class="language-cpp">bool isGood(std::string str) {
   // bla
}
</code></pre>
<p>Vielen Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206471/bruch-in-string</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 11:02:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206471.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Feb 2008 15:06:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:06:00 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen Bruch in der Form (als String) &quot;x/y&quot;. x und y stehen für<br />
beliebige Zahlen. Ich möchte jetzt eine Funktion schreiben, die überprüft, ob<br />
der string str, in der oben gezeigten Form ist. Ich weiß, mit boost könnte man<br />
das wahrscheinlich einfacher machen, aber ich würde gerne wissen, wie ich das<br />
machen könnte.</p>
<pre><code class="language-cpp">bool isGood(std::string str) {
   // bla
}
</code></pre>
<p>Vielen Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462545</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:09:11 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich weiß, mit boost könnte man<br />
das wahrscheinlich einfacher machen</p>
</blockquote>
<p>Wie kommst Du denn darauf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462548</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:09:11 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:11:18 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Boost.Regex</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462550</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:11:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:13:14 GMT]]></title><description><![CDATA[<p>Was sind die Kriterien ob es ein Bruch deiner Form ist?<br />
- Slash muss enthalten sein.<br />
- Vor und nach dem Slash müssen Nummern stehen, bzw. ev. möchtest Du auch Variabeln zulassen.<br />
- Whitespaces (wie Space) sollen erlaubt sein (z.B. &quot;x/y&quot; is gleich &quot;x / y&quot;)</p>
<p>Benutze std::string.find(..) etc.</p>
<p>Gruss Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462551</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:14:43 GMT]]></title><description><![CDATA[<p>Es soll einfach zuerst eine Zahl kommen, dann GLEICH ein Slash und dann wieder<br />
eine Zahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462558</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:17:43 GMT]]></title><description><![CDATA[<p>sscanf ist da praktisch für. <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">std::string bruch(&quot;10/3&quot;);

int a,b;
return sscanf(bruch.c_str(), &quot;%i/%i&quot; &amp;a, &amp;b) == 2;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1462562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462562</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:17:43 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:19:33 GMT]]></title><description><![CDATA[<p>Kannst du mir die Funktion erklären? (Ich kenne die ganzen C-Funktionen nicht!)<br />
Muss ich dafür wieder irgendeine Header einbinden? cstdlib oder cstdio???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462564</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:19:33 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:27:21 GMT]]></title><description><![CDATA[<p>Ich wuerde in etwa folgendes machen:</p>
<pre><code class="language-cpp">bool TestRational(std::string const&amp; s) {
  std::stringstream sstr(s);
  int i;
  if (! sstr &gt;&gt; i) return false;
  char c;
  sstr &gt;&gt; c;
  if (! c=='/') return false;
  if (! sstr&gt;&gt;i) return false;
  if (! sstr.str() == &quot;&quot;) return false;
  return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1462573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462573</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:28:28 GMT]]></title><description><![CDATA[<p>Brauchst #include &lt;cstdio&gt; und liegt dann auch im Namespace std.</p>
<p>sscanf tut folgendes:<br />
1. Parameter wodrin gesucht werden soll<br />
2. Parameter Format des gesuchten. %i steht dabei für einen Integer.<br />
3. und 4. Parameter sind die Adressen in die eben jene gefundenen gespeichert werden.</p>
<p>Der return-Wert ist die Anzahl der passenden Parameter. Also hier im Erfolgsfall 2.</p>
<p>Da sscanf aber nicht typensicher ist, ist es eigentlich ungern gesehen. Aber für diesen Fall eigentlich schön simpel und nicht so &quot;gefährlich&quot; wie printf. <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><a href="http://www.cppreference.com/stdio/scanf.html" rel="nofollow">http://www.cppreference.com/stdio/scanf.html</a><br />
<a href="http://www.cppreference.com/stdio/sscanf.html" rel="nofollow">http://www.cppreference.com/stdio/sscanf.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462574</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 15:31:18 GMT]]></title><description><![CDATA[<p>Danke für die Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462576</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 17:12:02 GMT]]></title><description><![CDATA[<p>[Sarkasmus]Last uns alle ein wenig unsichere Funktionen nutzen[/Sarkasmus]</p>
<pre><code class="language-cpp">bool is_fraction(std::string const&amp; string) 
{
    std::ostringstream ss(string);
    int numbers;
    return (ss &gt;&gt; left) &amp;&amp; (ss.get() == '/') &amp;&amp; (ss &gt;&gt; numbers);
}
</code></pre>
<p>das sollte da schon reichen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1462657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462657</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 25 Feb 2008 17:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 19:05:55 GMT]]></title><description><![CDATA[<p>@(D)Evil, pumuckl</p>
<p>nur zur Info - man kann den Streaming-operator '&gt;&gt;' auch verketten. Dafür ist er da. Also entweder so:</p>
<pre><code class="language-cpp">bool TestRational(std::string const&amp; s) {
  std::stringstream sstr(s);
  int i;
  char c;
  return sstr &gt;&gt; i &gt;&gt; c &gt;&gt; i &gt;&gt; std::ws &amp;&amp; c == '/' &amp;&amp; sstr.eof();
}
</code></pre>
<p>oder so</p>
<pre><code class="language-cpp">bool is_fraction(std::string const&amp; string)
{
    std::istringstream ss(string); // (i) wie Input
    int numbers;
    return (ss &gt;&gt; numbers).get() == '/' &amp;&amp; (ss &gt;&gt; numbers);
}
</code></pre>
<p>.. ohne zu prüfen, ob dahinter noch was kommt. Wobei hier noch zu erwähnen ist, dass get() unformatiert einliest. Im Klartext heißt das hier, dass is_fraction bei &quot;3/ 4&quot; true liefert und bei &quot;3 /4&quot; false.</p>
<p>Tritt während des Lesens ein Fehler auf, so bleibt der stream im Fehlerzustand, solange man kein clear() aufruft; es ist also gar nicht notwendig ständig auf !fail zu prüfen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462753</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 25 Feb 2008 19:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to Bruch in String on Mon, 25 Feb 2008 21:25:09 GMT]]></title><description><![CDATA[<p>Hmm das war mir bewusst, und in dem Fall hab ich nicht daran gedacht, das error-flags gesetzt werden und damit das restliche einlesen eh nicht klappt. sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462870</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 25 Feb 2008 21:25:09 GMT</pubDate></item></channel></rss>