<?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[AnsiString: Zahl oder Buchstabe]]></title><description><![CDATA[<p>Hi !</p>
<p>wie kann man in einem String beim parsen festellen ob Derstring[i] eine Zahl oder einen Buchstabe/Sonderzeichen enthält ??</p>
<p>MfG<br />
Z01</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142042/ansistring-zahl-oder-buchstabe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 02:26:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142042.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Mar 2006 15:24:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:24:28 GMT]]></title><description><![CDATA[<p>Hi !</p>
<p>wie kann man in einem String beim parsen festellen ob Derstring[i] eine Zahl oder einen Buchstabe/Sonderzeichen enthält ??</p>
<p>MfG<br />
Z01</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024880</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:24:28 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:31:05 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Indem Du nach dem ASCII-Wert schaust</p>
<pre><code class="language-cpp">char temp = derstring[i];
int x = int(temp);
if(x &lt;= weisichgradnicht &amp;&amp; x &gt;= weissichauchgradnicht)
  {
    // Zahl
  }
else 
  {
    // keine Zahl
  }
</code></pre>
<p>Oder ob StrToInt einen Fehler verursacht. Deshalb in Try schalteln. Das ist aber die weitaus unschönste Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024882</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:44:04 GMT]]></title><description><![CDATA[<p>Genau wegen dem StrToInt frag ich. Vor dem anwenden wollte ich schon gern wissen obs auch wirklich nen integer ist weil sonst...ihr wisst ja.<br />
Da is mir dein cast</p>
<pre><code class="language-cpp">int x = int(temp);
</code></pre>
<p>und ein anschliesender Vergleich doch lieber.Ich ratter einfach mal ein paar Strings durch und schau was raus kommt.</p>
<p>Danke !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024902</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:50:36 GMT]]></title><description><![CDATA[<p>Die Zahlen erstrecken sich von 48 bis 57</p>
<p>Du kannst es auch mit StrToIntDef versuchen</p>
<pre><code class="language-cpp">extern PACKAGE int __fastcall StrToIntDef(const AnsiString S; const int Default);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1024906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024906</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:55:17 GMT]]></title><description><![CDATA[<p>Rostfrei[] schrieb:</p>
<blockquote>
<pre><code class="language-cpp">extern PACKAGE int __fastcall StrToIntDef(const AnsiString S; const int Default);
</code></pre>
</blockquote>
<p>Sehr schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> vielen Dank !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024911</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:56:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if((DerString[i]&gt;='0') &amp;&amp; (DerString[i]&lt;='9'))
{
    // das zeichen ist eine Zahl
}
else
{
   // keine zahl
}
</code></pre>
<p>natürlich werden hier Punkte/Komas nicht berücksichtigt..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024912</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 15:59:38 GMT]]></title><description><![CDATA[<p>Falsches Fenster. Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024915</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Mon, 27 Mar 2006 15:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 16:08:41 GMT]]></title><description><![CDATA[<p>So sollte das doch Funktionieren:</p>
<pre><code class="language-cpp">for(int i = 1; i &lt; outpack.Length();i++)
  {
     if(outpack[i] == '^' &amp;&amp; i + 1 &lt;= outpack.Length())
    {
      if(StrToIntDef(outpack[i + 1],1111) != 1111)
     {

             // Zahl

     }
      else
     {

            // keine Zahl

     }
    }
   }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1024922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024922</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 16:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 17:28:41 GMT]]></title><description><![CDATA[<p>Hab die Methode jetzt fertig. So sollte man aus Strings Farbcodes entfernen können und spezifische ersetzen:</p>
<pre><code class="language-cpp">String firstrange = &quot;&quot;,lastrange = &quot;&quot;;
  int index;

   for(int i = 1; i &lt; outpack.Length();i++)
  {
     if(outpack[i] == '^' &amp;&amp; i + 1 &lt;= outpack.Length())
    {
        if(StrToIntDef(outpack[i + 1],1111) != 1111)
       {
         // Zahl, also Farbcodes ausschneiden
         index = outpack.Pos(&quot;^&quot;);
         firstrange = outpack.SubString(1,index - 1);
         lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));//die 2 byte ausschneiden
         outpack = firstrange + lastrange;

       }
        else
       {    // keine Zahl ,string teilen und neuen string in der mitte einfügen
           index = outpack.Pos(&quot;^&quot;);
           if(index + 2 &lt;= outpack.Length())
         {
            if(outpack[index + 1] == 'v' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;|&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'a' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;*&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'c' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;:&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'd' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;\\&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 's' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;/&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'q' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;?&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 't' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;\&quot;&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'l' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;&lt;&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'r' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot;&gt;&quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

           if(outpack[index + 1] == 'L' &amp;&amp; index + 2 &lt;= outpack.Length())
           {
            firstrange = outpack.SubString(1,index - 1) + &quot; &quot;;
            lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
            outpack = firstrange + lastrange;
           }

         }
       }
     }
   }

   return outpack;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1024974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024974</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 17:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 17:31:39 GMT]]></title><description><![CDATA[<p>Das schreit nach <em>switch/case</em>, zumindest aber nach massenhaft <em>else if</em>.<br />
Und Sachen, die in jedem Fall gleich ausgeführt werden, gehören nur einmal in die Schleife, nicht in jede Verzweigung.</p>
<p>Wenn du mal einen Original-String und das dazu passende gewünschte Ergebnis zeigst lässt sich die Stringbearbeitung selbst vielleicht auch noch optimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024980</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 27 Mar 2006 17:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 17:31:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>den Teil im else-Zweig kannst du aber sehr elegant zusammenfassen... die einzelnen Teile unterscheidet sich doch nur minimal voneinander</p>
<pre><code class="language-cpp">AnsiString Chars1 = &quot;vacdsqt1rL&quot;;
AnsiString Chars2 = &quot;|*:\\/?\&quot;&lt;&gt; &quot;;

...
  int pos = Chars1.Pos(outpack[index + 1]);
  if(pos &gt; 0 &amp;&amp; index + 2 &lt;= outpack.Length())
  {
    firstrange = outpack.SubString(1,index - 1) + Chars2[pos];
    lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
    outpack = firstrange + lastrange;
    }
...
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024981</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 27 Mar 2006 17:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Mon, 27 Mar 2006 17:55:07 GMT]]></title><description><![CDATA[<p>else if hört sich fürs erste gut an. Switch case funzt doch nur mit integer !? oder hab ich da was falsch verstanden?</p>
<p>aus Mein<sup>vNick</sup>aAUT soll Mein|Nick*AUT gemacht werden und ggf. Farbcodes ausgeschnitten werden um halt alles im Klartext zu erhalten.</p>
<p>Edit: Boah Akari, wie geil. Vielen Dank den ganzen Mitschreibern ! Ich bin echt erstaunt wie die leute hier mitdenken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024992</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Mon, 27 Mar 2006 17:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Tue, 28 Mar 2006 06:52:57 GMT]]></title><description><![CDATA[<p>switch/case funktioniert mit allen integralen Datentypen, also auch mit char (oder bool :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025240</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 28 Mar 2006 06:52:57 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Tue, 28 Mar 2006 13:17:34 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>switch/case funktioniert mit allen integralen Datentypen, also auch mit char (oder bool :D)</p>
</blockquote>
<p>Stimmt, hab noch mal nachgeschaut und is mir jetzt klar geworden. Danke. Wie kam ich nur auf so nen mist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <em>...tonnen von code umschreib</em> meine cpu atmet gleich auf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025510</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 28 Mar 2006 13:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Tue, 28 Mar 2006 23:57:24 GMT]]></title><description><![CDATA[<p>Öhm, jetzt weiß ich auch wie ich auf integer kam. Diese sind nur im case erlaubt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026022</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 28 Mar 2006 23:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Wed, 29 Mar 2006 06:20:52 GMT]]></title><description><![CDATA[<p>würde hier so was nicht schon reichen?</p>
<pre><code>try
      {
      // Versuchen den Wert in einen Int zu wandeln
      variable = StrToInt(string);
      }
   catch(...)
      {
      Application-&gt;MessageBoxA(&quot;Fehler...&quot;,&quot;Fehler&quot;,0);
      }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026070</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Wed, 29 Mar 2006 06:20:52 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString: Zahl oder Buchstabe on Thu, 30 Mar 2006 22:23:54 GMT]]></title><description><![CDATA[<p>Das wäre zwar auch ne Möglichkeit aber die Methode läuft nun bestens:</p>
<pre><code class="language-cpp">String __fastcall TForm1::GetClearString(String outpack)
{
  String firstrange = &quot;&quot;,lastrange = &quot;&quot;;
  String Chars1 = &quot;vacdsqtlr&quot;;
  String Chars2 = &quot;|*:\\/?\&quot;&lt;&gt;&quot;;
  String Chars3 = &quot;LGCJETB&quot;;
  int index;

   for(int i = 1; i &lt; outpack.Length();i++)
  {
     if(outpack[i] == '^' &amp;&amp; i + 1 &lt;= outpack.Length())
    {
        if(StrToIntDef(outpack[i + 1],11112) != 11112)
       {
         // Zahl, also Farbcodes ausschneiden
         index = outpack.Pos(&quot;^&quot;);
         if(index + 2 &lt;= outpack.Length())
         {
          firstrange = outpack.SubString(1,index - 1);
          lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));//die 2 byte ausschneiden
          outpack = firstrange + lastrange;
         }
       }
        else
       {    // keine Zahl ,string teilen und neuen string in der mitte einfügen
          index = outpack.Pos(&quot;^&quot;);
          int pos = Chars1.Pos(outpack[index + 1]);
          if(pos &gt; 0 &amp;&amp; index + 2 &lt;= outpack.Length())
         {
          firstrange = outpack.SubString(1,index - 1) + Chars2[pos];
          lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));
          outpack = firstrange + lastrange;
         }

          //Ländercode entfernen
          index = outpack.Pos(&quot;^&quot;);
          pos =  Chars3.Pos(outpack[index + 1]);
          if(pos &gt; 0 &amp;&amp; index + 2 &lt;= outpack.Length())
         {
          firstrange = outpack.SubString(1,index - 1);
          lastrange = outpack.SubString(index + 2,outpack.Length() - (index + 1));//die 2 byte ausschneiden
          outpack = firstrange + lastrange;
         }
       }
     }
    }

    return outpack;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1026373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026373</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Thu, 30 Mar 2006 22:23:54 GMT</pubDate></item></channel></rss>