<?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[ISBN-Nummer zerlegen]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade eine ISBN-Nummer in seine einzelnen Ziffern zu zerlegen. Ein Problem dabei ist, dass manche dieser Nummern ein X beinhalten und ich dies beachten muss.<br />
Ich weiß allerdings nicht, wie ich die Nummer am besten zerlegen soll. Hab schon nach einem Befehl für C++ gesucht, welcher dies automatisch macht. Maskieren hab ich mir auch überlegt, allerdings finde ich nirgendwo etwas übers Maskieren in C++. Ich hab auch noch nicht so viel Ahnung, da ich noch nicht so lange in C++ programmieren.<br />
Sehr wichtig ist auch, dass ich die einelnen Ziffern/Buchstaben für eine Weiterverarbeitung als einzelne Variablen zwischengespeichert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169343/isbn-nummer-zerlegen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:38:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169343.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jan 2007 14:33:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 14:33:57 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche gerade eine ISBN-Nummer in seine einzelnen Ziffern zu zerlegen. Ein Problem dabei ist, dass manche dieser Nummern ein X beinhalten und ich dies beachten muss.<br />
Ich weiß allerdings nicht, wie ich die Nummer am besten zerlegen soll. Hab schon nach einem Befehl für C++ gesucht, welcher dies automatisch macht. Maskieren hab ich mir auch überlegt, allerdings finde ich nirgendwo etwas übers Maskieren in C++. Ich hab auch noch nicht so viel Ahnung, da ich noch nicht so lange in C++ programmieren.<br />
Sehr wichtig ist auch, dass ich die einelnen Ziffern/Buchstaben für eine Weiterverarbeitung als einzelne Variablen zwischengespeichert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202771</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Thu, 04 Jan 2007 14:33:57 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 14:39:22 GMT]]></title><description><![CDATA[<p>hm</p>
<pre><code class="language-cpp">uchar isbn[] = &quot;360893541X&quot;;
</code></pre>
<p>nu kannst mit isbn[n] auf die einzelnen elemente zugreifen. über nen simplen vergleich kannst du dann rausfinden, ob das zeichen nen X ist oder nicht (evtl. auch nen leerzeichen o.ä.) und entsprechend behandeln.</p>
<p>nich gut genug?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202776</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 04 Jan 2007 14:39:22 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 14:39:51 GMT]]></title><description><![CDATA[<p>Strings kann man sehr schön zerlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202777</guid><dc:creator><![CDATA[...]]></dc:creator><pubDate>Thu, 04 Jan 2007 14:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 14:53:25 GMT]]></title><description><![CDATA[<p>Benutze dafür die Stringklasse. Beispiel wie man ein X löscht:</p>
<pre><code class="language-cpp">std::string isbn = &quot;3-92563-20-X&quot;;
std::size_t pos = isbn.find(&quot;X&quot;);  
isbn.erase(pos);
</code></pre>
<p>Gut, was du jetzt genau vorhast, weiß ich nicht. Aber du kannst z.B. durch einige Funktionen der string-Klasse einiges basteln.</p>
<p>Hier eine Übersicht der verfügbaren Funktionen, die string kennt:<br />
<a href="http://www.cppreference.com/cppstring/index.html" rel="nofollow">http://www.cppreference.com/cppstring/index.html</a></p>
<p>Am einfachsten ist es, wenn du z.B. noch die Boost-Libs nimmst, da gibt es diverser leistungsfähige String-Algorithmen und auch Regex für das bequemere suchen von Masken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202786</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 04 Jan 2007 14:53:25 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 15:32:06 GMT]]></title><description><![CDATA[<p>Also mir wäre die Methode von thordk lieber, weil wir noch nicht mit Strings gearbeitet haben.</p>
<p>Allerdings weiß ich nicht, wie ich das nun anwenden soll. Als was muss ich isbn deklarieren und muss ich uchar auch deklarieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202830</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Thu, 04 Jan 2007 15:32:06 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 15:48:12 GMT]]></title><description><![CDATA[<p>DeLaSerna schrieb:</p>
<blockquote>
<p>...Ein Problem dabei ist, dass manche dieser Nummern ein X beinhalten und ich dies beachten muss...</p>
</blockquote>
<p>Hi,</p>
<p>soweit ich weiß, kann das höchstens bei der letzten Stelle sein (Prüfziffer), Deswegen würde ich nicht für jede Stelle eine Sonderlocke einbauen, sondern nur für die letzte Stelle (z.B. die letzter Stelle auf 'X' abfragen und int auf 10 setzen)....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202858</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 04 Jan 2007 15:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 15:54:56 GMT]]></title><description><![CDATA[<p>Ihr lebt ja wohl noch im ersten Jahrtausend nach 1006 <a href="http://n.Ch" rel="nofollow">n.Ch</a>., inzwischen gibts doch was viel besseres. Jeder Depp weiss doch, dass 13 mehr als 10 ist, also sind die neuen ISBN auch besser.</p>
<p><a href="http://www.heise.de/newsticker/result.xhtml?url=/newsticker/meldung/83064" rel="nofollow">http://www.heise.de/newsticker/result.xhtml?url=/newsticker/meldung/83064</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202870</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Thu, 04 Jan 2007 15:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 15:58:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a><br />
Ja, nur die letzte Stelle kann ein X sein.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14924">@Entenwickler</a><br />
Die Aufgabenstellung lautet aber 10stellige ISBN-Nummern zu überprüfen und nicht 13stellige <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/1202873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202873</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Thu, 04 Jan 2007 15:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Thu, 04 Jan 2007 23:42:26 GMT]]></title><description><![CDATA[<p>Kann mir nochmal bitte jemand helfen?<br />
Ich würd gern den Vorschlag von thordk nehmen, aber ich hab keine Ahung, was ich dabei beachten muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203193</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Thu, 04 Jan 2007 23:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 07:20:03 GMT]]></title><description><![CDATA[<p>Du mußt vor allem beachten, daß du genug Platz für die ISBN vorsehen solltest (10 Byte+Stringende = 11, wenn du Trennzeichen nicht vorher aussortierst, auch mehr). Und du mußt bedenken, daß '1'!=1 ist (ein char-Wert entspricht dem ASCII-Code des Zeichens).</p>
<p>Ansonsten: Was sollst du mit den ISBN's machen? Und was hast du schon vorliegen?</p>
<p>PS: Auch wenn der Autor deines Buches anderer Meinung sein wird - std::string ist wesentlich einfacher zu handhaben als char*. Und imho sollte man sich das Leben nicht unnötig schwer machen <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/1203257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203257</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 Jan 2007 07:20:03 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 14:39:46 GMT]]></title><description><![CDATA[<p>Also hier ist mal meine komplette Aufgabenstellung:</p>
<blockquote>
<p>Es solle eine Funktion</p>
<p>int gew_quersumme (int zahl);</p>
<p>entworfen und implementiert werden. Der Parameter zahl stelle die Ziffern 1 – 9 der zu überprüfenden ISBN-Nummer dar. Die Funktion soll als Ergebnis die gewichtete Quersumme der Ziffern 1-9 nach o.g. verfahren berechnen und diese dem rufenden Programm zurückgeben.</p>
<p>Weiter soll eine Funktion</p>
<p>bool test_isbn(int zahl, char letzte);</p>
<p>entworfen und implementiert werden. Der Parameter zahl stelle die Ziffern 1 – 9 der zu überprüfenden ISBN-Nummer dar. Die gewichtete Quersumme dieser Zahl soll mit Hilfe der Funktion gew_quersumme berechnet werden. Zu dieser soll der gewichtete Wert der letzten Ziffer (Wertevorrat '0'...'9',X, Wichtuing dieser Ziffer ist 10) hinzuaddiert werden. Die letzte Ziffer wird als Parameter letzte übergeben.</p>
</blockquote>
<p>Wie gesagt, soll ich keine Strings o.ä. verwenden, weil wir das noch nicht behandelt haben.</p>
<p>Hier ist mal das Programm, was ich bis jetzt gemacht habe:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;math.h&gt;

using namespace std;

main()
{
    char isbn[10];
    char z0, z1, z2, z3, z4, z5, z6, z7, z8, z9, X;
    cout &lt;&lt; &quot;Bitte geben Sie eine 10stellige ISBN-Nummer ein!\n&quot;;
    cin &gt;&gt; isbn;
    z0 = isbn[0];
    z1 = isbn[1];
    z2 = isbn[2];
    z3 = isbn[3];
    z4 = isbn[4];
    z5 = isbn[5];
    z6 = isbn[6];
    z7 = isbn[7];
    z8 = isbn[8];
    z9 = isbn[9];

    if (z9 = X)
    {
          z9 = 10;
    } else
    {
          z9 = isbn[9];
    }

    cout &lt;&lt; endl;
    cout &lt;&lt; (z0*1 + z1*2 + z2*3 + z3*4 + z4*5 + z5*6 + z6*7 + z7*8 + z8*9 + z9*10) % 11;
    cout &lt;&lt; endl;
    system(&quot;PAUSE&quot;);
}
</code></pre>
<p>Irgendetwas an meiner Abfrage wegen dem X stimmt auch noch nicht. Wenn ich diese rausnehme, funktioniert das Programm aber wenigstens für alle ISBN-Nummern ohne X.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203660</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Fri, 05 Jan 2007 14:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 14:45:03 GMT]]></title><description><![CDATA[<p>Erstmal stimmt an deinem Programm nicht, daß du von den char-Werten noch jeweils '0' abziehen müsstest, um auf den jeweiligen Ziffernwert zu kommen. Und zweitens mußt du nicht mit X (das ist eine Variable, die dir der Compiler höchstwahrscheinlich als &quot;nicht deklarierter Bezeichner&quot; um die Ohren hauen dürfte), sondern mit 'X' (char-Konstante) vergleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203664</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 Jan 2007 14:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 15:21:54 GMT]]></title><description><![CDATA[<p>Wer lesen kann ist im Vorteil, er hat eine Variable names X, die ist aber nicht initalisiert, darum wirds wohl (nur) Warnungen regnen.</p>
<p>Warum machst du nicht einfach das was in der Aufgabe steht? Ist meistens Sinn und Zweck davon. Das ist ne verdammte Uebungsaufgabe und kein Enduser-Programm, also kannste das ganze mit der Fehlerueberpruefung bei der Eingabe vergessen, geh doch mal einfach davon aus der Anwender gibt das im Format ein wie du es haben willst, Kosemetik geht danach immer noch.</p>
<p>Dann sieht das ganze etwa so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int gew_quersumme (int zahl) { }

bool test_isbn(int zahl, char letzte) {
    int summe;
    if(letzte &gt;= '0' &amp;&amp; letzte &lt;= '9') {
        summe = letzte - '0';
    } else if(tolower(letzte) == 'x') {
        summe = 10;
    } else {
        assert(false);
    }
    return summe == qew_quersumme(zahl);
}

int main() {
    int isbn;
    char pruefsumme;
    cin &gt;&gt; isbn &gt;&gt; pruefsumme;
    if(test_isbn(isbn, pruefsumme)) {
        cout &lt;&lt; &quot;isbn ist ok&quot; &lt;&lt; endl;
    }
}
</code></pre>
<p>Man bin ich grade nett, naja hatte heute auch schon nen BJ das setzt viel von dem Hormonzeug aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203696</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Fri, 05 Jan 2007 15:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 15:42:30 GMT]]></title><description><![CDATA[<p>Dankeschön. Allerdings funktioniert das Ganze bei mir noch nicht. Kommen noch Fehlermeldungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203707</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Fri, 05 Jan 2007 15:42:30 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 15:45:29 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Willst du die selber eliminieren, oder willst du, dass wir raten?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203710</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 05 Jan 2007 15:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 16:03:43 GMT]]></title><description><![CDATA[<p>Ich würde das ja selber machen, aber leider hab ich wirklich keine Ahnung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203725</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Fri, 05 Jan 2007 16:03:43 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 16:13:45 GMT]]></title><description><![CDATA[<p>Wir sind leider nicht in der Lage, von hier aus deinen Rechner zu sehen (Kristallkugel lässt grüßen :D), deshalb mußt du uns schon sagen, was für Fehler du hast (und bei welchem Programm).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203737</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 Jan 2007 16:13:45 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 16:22:23 GMT]]></title><description><![CDATA[<p>Also ich benutzt Dev-C++ 4.9.9.2 und bekommen folgende Fehlermeldungen beim kompilieren:</p>
<p>In function <code>bool test_isbn(int, char)': Zeile 14 -</code>qew_quersumme' undeclared (first use this function)<br />
(Each undeclared identifier is reported only once for each function it appears in.)</p>
<p>In function <code>int main()': 20</code>cin' undeclared (first use this function)<br />
22 <code>cout' undeclared (first use this function) 22</code>endl' undeclared (first use this function)</p>
<p>Bei dem Fehler in Zeile 14 steht ja soweit ich das verstehe, dass gew_quersumme nicht deklariert ist und bekomm den Fehler nicht selber weg.</p>
<p>Bei den 3 anderen Fehler weiß ich nich wirklich, was ich damit anfangen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203746</guid><dc:creator><![CDATA[DeLaSerna]]></dc:creator><pubDate>Fri, 05 Jan 2007 16:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 16:26:19 GMT]]></title><description><![CDATA[<p>Die anderen drei Fehler besagen, daß die Objekte cin, cout und endl nicht definiert sind - für diese brauchst du den Header &lt;iostream&gt; und notfalls ein &quot;using namespace std;&quot; am Anfang des Programms. Die Funktion gew_quersumme mußt du schon selber schreiben (und darauf achten, daß du dich bei dem Namen nicht verschreibst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203749</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 05 Jan 2007 16:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to ISBN-Nummer zerlegen on Fri, 05 Jan 2007 16:27:14 GMT]]></title><description><![CDATA[<p>Tut mir leid dass ich mich da vertippt hab (Achtung, das war Sarkasmus!) - aber bei deiner Eigeninitiative ist es wohl besser wenn du endlich folgdes schreibst: &quot; Hallo ich habe keine Ahnung bitte gebt mir einen fertigen Quellcode denn ich will eine gute Note haben. &quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203750</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Fri, 05 Jan 2007 16:27:14 GMT</pubDate></item></channel></rss>