<?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[Zeichenhäufigkeit, vereinfachter Code?]]></title><description><![CDATA[<p>Guten Abend.</p>
<p>Ich lese derzeit ein Grundlagenbuch für C++.</p>
<p>Nach einigen Kapiteln über Ein- und Ausgaben, Operatoren, Kontrollstrukturen, Präprozessoren, Zeigern und Referenzen, und Arrays(Eindimensionale und Mehrdimensionale), bin ich auf folgende Übung gestoßen:</p>
<p>&quot;Ein Programm soll eine Zeile von maximal 80 Zeichen einlesen und<br />
die Häufigkeiten der darin enthaltenen Buchstaben (ohne ß und Umlaute) feststellen.&quot;</p>
<p>Ich habe dazu nun einen (meiner Ansicht nach) sehr mühseligen und umständlichen Code geschrieben.<br />
Sieht nach viel aus, ist aber wenig.<br />
- String-Eingabe (max. 80 Zeichen)<br />
- Zuordnung (Buchstabenzählen)<br />
- Ausgabe der Häufigkeiten</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;string&gt;
#include &lt;stdio.h&gt;

using namespace std;

int main() 
{
	char string[80];
	int zähler;
	int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0,
		l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0,
		w = 0, x = 0, y = 0, z = 0;

	cout &lt;&lt;&quot;Eingabe (max. 80 Buchstaben): &quot; &lt;&lt; endl;
	cin.getline(string, 80);

	for (zähler = 0; zähler &lt; strlen(string); zähler++) {

		if (string[zähler] == 'a' || string[zähler] == 'A') {
			a++;
		}
		else if (string[zähler] == 'b' || string[zähler] == 'B') {
			b++;
		}
		else if (string[zähler] == 'c' || string[zähler] == 'C') {
			c++;
		}
		else if (string[zähler] == 'd' || string[zähler] == 'D') {
			d++;
		}
		else if (string[zähler] == 'e' || string[zähler] == 'E') {
			e++;
		}
		else if (string[zähler] == 'f' || string[zähler] == 'F') {
			f++;
		}
		else if (string[zähler] == 'g' || string[zähler] == 'G') {
			g++;
		}
		else if (string[zähler] == 'h' || string[zähler] == 'H') {
			h++;
		}
		else if (string[zähler] == 'i' || string[zähler] == 'I') {
			i++;
		}
		else if (string[zähler] == 'j' || string[zähler] == 'J') {
			j++;
		}
		else if (string[zähler] == 'k' || string[zähler] == 'K') {
			k++;
		}
		else if (string[zähler] == 'l' || string[zähler] == 'L') {
			l++;
		}
		else if (string[zähler] == 'm' || string[zähler] == 'M') {
			m++;
		}
		else if (string[zähler] == 'n' || string[zähler] == 'N') {
			n++;
		}
		else if (string[zähler] == 'o' || string[zähler] == 'O') {
			o++;
		}
		else if (string[zähler] == 'p' || string[zähler] == 'P') {
			p++;
		}
		else if (string[zähler] == 'q' || string[zähler] == 'Q') {
			q++;
		}
		else if (string[zähler] == 'r' || string[zähler] == 'R') {
			r++;
		}
		else if (string[zähler] == 's' || string[zähler] == 'S') {
			s++;
		}
		else if (string[zähler] == 't' || string[zähler] == 'T') {
			t++;
		}
		else if (string[zähler] == 'u' || string[zähler] == 'U') {
			u++;
		}
		else if (string[zähler] == 'v' || string[zähler] == 'V') {
			v++;
		}
		else if (string[zähler] == 'w' || string[zähler] == 'W') {
			w++;
		}
		else if (string[zähler] == 'x' || string[zähler] == 'X') {
			x++;
		}
		else if (string[zähler] == 'y' || string[zähler] == 'Y') {
			y++;
		}
		else if (string[zähler] == 'z' || string[zähler] == 'Z') {
			z++;
		}

	}
	cout &lt;&lt; &quot;\n\nBuchstabenhaeufigkeit der Eingabe:\n&quot; &lt;&lt; '\&quot;' &lt;&lt; string &lt;&lt; '\&quot;' &lt;&lt; &quot;\n\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot;\tb: &quot; &lt;&lt; b &lt;&lt; &quot;\tc: &quot; &lt;&lt; c &lt;&lt; &quot;\td: &quot; &lt;&lt; d &lt;&lt; &quot;\te: &quot; &lt;&lt; e &lt;&lt; &quot;\tf: &quot; &lt;&lt; f &lt;&lt; &quot;\ng: &quot; &lt;&lt; g &lt;&lt;
		 &quot;\th: &quot; &lt;&lt; h &lt;&lt; &quot;\ti: &quot; &lt;&lt; i &lt;&lt; &quot;\tj: &quot; &lt;&lt; j &lt;&lt; &quot;	k: &quot; &lt;&lt; k &lt;&lt; &quot;\nl: &quot; &lt;&lt; l &lt;&lt; &quot;	m: &quot; &lt;&lt; m &lt;&lt; &quot;	n: &quot; &lt;&lt; n &lt;&lt;
		  &quot;	o: &quot; &lt;&lt; o &lt;&lt; &quot;	p: &quot; &lt;&lt; p &lt;&lt; &quot;\nq: &quot; &lt;&lt; q &lt;&lt; &quot;	r: &quot; &lt;&lt; r &lt;&lt; &quot;	s: &quot; &lt;&lt; s &lt;&lt; &quot;	t: &quot; &lt;&lt; t &lt;&lt; &quot;	u: &quot; &lt;&lt; u &lt;&lt;
		   &quot;\nv: &quot; &lt;&lt; v &lt;&lt; &quot;	w: &quot; &lt;&lt; w &lt;&lt; &quot;	x: &quot; &lt;&lt; x &lt;&lt; &quot;	y: &quot; &lt;&lt; y &lt;&lt; &quot;	z: &quot; &lt;&lt; z &lt;&lt; endl;

	getch(); 
}
</code></pre>
<p>Dieser Code funktioniert einwandfrei.<br />
Ich möchte diesen jedoch sehr viel kompakter schreiben.<br />
Ich habe bereits versucht hier mehrdimensionale Arrays zum Einsatz zu bringen.<br />
Gäbe es da eine Möglichkeit oder täusche ich mich da?</p>
<p>Wenn mir jemand einen Tipp geben kann (!BITTE KEINE KOMPLETTEN CODES!), also Denkanstöße, wäre das schonmal eine nette Unterstützung.</p>
<p>PS: Oben habe ich erwähnt, welche Kapitel ich bereits durchgearbeitet habe. Wenn ihr also darauf achtet, mich nicht mit einem komplett fremden Gebiet wie &quot;Klassen&quot; oder &quot;Funktionen&quot; zu konfrontieren, hilft mir das weitaus besser. <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="🙂"
    /></p>
<p>Gruß<br />
Cruxi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292882/zeichenhäufigkeit-vereinfachter-code</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 15:41:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292882.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Sep 2011 19:15:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 19:15:03 GMT]]></title><description><![CDATA[<p>Guten Abend.</p>
<p>Ich lese derzeit ein Grundlagenbuch für C++.</p>
<p>Nach einigen Kapiteln über Ein- und Ausgaben, Operatoren, Kontrollstrukturen, Präprozessoren, Zeigern und Referenzen, und Arrays(Eindimensionale und Mehrdimensionale), bin ich auf folgende Übung gestoßen:</p>
<p>&quot;Ein Programm soll eine Zeile von maximal 80 Zeichen einlesen und<br />
die Häufigkeiten der darin enthaltenen Buchstaben (ohne ß und Umlaute) feststellen.&quot;</p>
<p>Ich habe dazu nun einen (meiner Ansicht nach) sehr mühseligen und umständlichen Code geschrieben.<br />
Sieht nach viel aus, ist aber wenig.<br />
- String-Eingabe (max. 80 Zeichen)<br />
- Zuordnung (Buchstabenzählen)<br />
- Ausgabe der Häufigkeiten</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;string&gt;
#include &lt;stdio.h&gt;

using namespace std;

int main() 
{
	char string[80];
	int zähler;
	int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0,
		l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0,
		w = 0, x = 0, y = 0, z = 0;

	cout &lt;&lt;&quot;Eingabe (max. 80 Buchstaben): &quot; &lt;&lt; endl;
	cin.getline(string, 80);

	for (zähler = 0; zähler &lt; strlen(string); zähler++) {

		if (string[zähler] == 'a' || string[zähler] == 'A') {
			a++;
		}
		else if (string[zähler] == 'b' || string[zähler] == 'B') {
			b++;
		}
		else if (string[zähler] == 'c' || string[zähler] == 'C') {
			c++;
		}
		else if (string[zähler] == 'd' || string[zähler] == 'D') {
			d++;
		}
		else if (string[zähler] == 'e' || string[zähler] == 'E') {
			e++;
		}
		else if (string[zähler] == 'f' || string[zähler] == 'F') {
			f++;
		}
		else if (string[zähler] == 'g' || string[zähler] == 'G') {
			g++;
		}
		else if (string[zähler] == 'h' || string[zähler] == 'H') {
			h++;
		}
		else if (string[zähler] == 'i' || string[zähler] == 'I') {
			i++;
		}
		else if (string[zähler] == 'j' || string[zähler] == 'J') {
			j++;
		}
		else if (string[zähler] == 'k' || string[zähler] == 'K') {
			k++;
		}
		else if (string[zähler] == 'l' || string[zähler] == 'L') {
			l++;
		}
		else if (string[zähler] == 'm' || string[zähler] == 'M') {
			m++;
		}
		else if (string[zähler] == 'n' || string[zähler] == 'N') {
			n++;
		}
		else if (string[zähler] == 'o' || string[zähler] == 'O') {
			o++;
		}
		else if (string[zähler] == 'p' || string[zähler] == 'P') {
			p++;
		}
		else if (string[zähler] == 'q' || string[zähler] == 'Q') {
			q++;
		}
		else if (string[zähler] == 'r' || string[zähler] == 'R') {
			r++;
		}
		else if (string[zähler] == 's' || string[zähler] == 'S') {
			s++;
		}
		else if (string[zähler] == 't' || string[zähler] == 'T') {
			t++;
		}
		else if (string[zähler] == 'u' || string[zähler] == 'U') {
			u++;
		}
		else if (string[zähler] == 'v' || string[zähler] == 'V') {
			v++;
		}
		else if (string[zähler] == 'w' || string[zähler] == 'W') {
			w++;
		}
		else if (string[zähler] == 'x' || string[zähler] == 'X') {
			x++;
		}
		else if (string[zähler] == 'y' || string[zähler] == 'Y') {
			y++;
		}
		else if (string[zähler] == 'z' || string[zähler] == 'Z') {
			z++;
		}

	}
	cout &lt;&lt; &quot;\n\nBuchstabenhaeufigkeit der Eingabe:\n&quot; &lt;&lt; '\&quot;' &lt;&lt; string &lt;&lt; '\&quot;' &lt;&lt; &quot;\n\n&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;a: &quot; &lt;&lt; a &lt;&lt; &quot;\tb: &quot; &lt;&lt; b &lt;&lt; &quot;\tc: &quot; &lt;&lt; c &lt;&lt; &quot;\td: &quot; &lt;&lt; d &lt;&lt; &quot;\te: &quot; &lt;&lt; e &lt;&lt; &quot;\tf: &quot; &lt;&lt; f &lt;&lt; &quot;\ng: &quot; &lt;&lt; g &lt;&lt;
		 &quot;\th: &quot; &lt;&lt; h &lt;&lt; &quot;\ti: &quot; &lt;&lt; i &lt;&lt; &quot;\tj: &quot; &lt;&lt; j &lt;&lt; &quot;	k: &quot; &lt;&lt; k &lt;&lt; &quot;\nl: &quot; &lt;&lt; l &lt;&lt; &quot;	m: &quot; &lt;&lt; m &lt;&lt; &quot;	n: &quot; &lt;&lt; n &lt;&lt;
		  &quot;	o: &quot; &lt;&lt; o &lt;&lt; &quot;	p: &quot; &lt;&lt; p &lt;&lt; &quot;\nq: &quot; &lt;&lt; q &lt;&lt; &quot;	r: &quot; &lt;&lt; r &lt;&lt; &quot;	s: &quot; &lt;&lt; s &lt;&lt; &quot;	t: &quot; &lt;&lt; t &lt;&lt; &quot;	u: &quot; &lt;&lt; u &lt;&lt;
		   &quot;\nv: &quot; &lt;&lt; v &lt;&lt; &quot;	w: &quot; &lt;&lt; w &lt;&lt; &quot;	x: &quot; &lt;&lt; x &lt;&lt; &quot;	y: &quot; &lt;&lt; y &lt;&lt; &quot;	z: &quot; &lt;&lt; z &lt;&lt; endl;

	getch(); 
}
</code></pre>
<p>Dieser Code funktioniert einwandfrei.<br />
Ich möchte diesen jedoch sehr viel kompakter schreiben.<br />
Ich habe bereits versucht hier mehrdimensionale Arrays zum Einsatz zu bringen.<br />
Gäbe es da eine Möglichkeit oder täusche ich mich da?</p>
<p>Wenn mir jemand einen Tipp geben kann (!BITTE KEINE KOMPLETTEN CODES!), also Denkanstöße, wäre das schonmal eine nette Unterstützung.</p>
<p>PS: Oben habe ich erwähnt, welche Kapitel ich bereits durchgearbeitet habe. Wenn ihr also darauf achtet, mich nicht mit einem komplett fremden Gebiet wie &quot;Klassen&quot; oder &quot;Funktionen&quot; zu konfrontieren, hilft mir das weitaus besser. <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="🙂"
    /></p>
<p>Gruß<br />
Cruxi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121400</guid><dc:creator><![CDATA[Cruxi]]></dc:creator><pubDate>Mon, 19 Sep 2011 19:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 19:26:24 GMT]]></title><description><![CDATA[<p>Kern ist ein Array</p>
<pre><code class="language-cpp">int anzahl[256];
</code></pre>
<p>und</p>
<pre><code class="language-cpp">unsigned char string[80];
</code></pre>
<p>und</p>
<pre><code class="language-cpp">++anzahl[string[zähler&rsqb;&rsqb;;
</code></pre>
<p>Und bei der Ausgabe</p>
<pre><code class="language-cpp">for(int i='a';i&lt;='z';++i)
   cout&lt;&lt;char(i)&lt;&lt;' '&lt;&lt;anzahl[i]&lt;&lt;'\n';//kein endl, wenn '\n' reicht.
</code></pre>
<p>edit: Oh, Großbuchstaben auch. Naja, 'q'+('a'-'A')='Q' kannste mal annehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121402</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 19 Sep 2011 19:26:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 19:23:47 GMT]]></title><description><![CDATA[<p>Cruxi schrieb:</p>
<blockquote>
<p>Ich lese derzeit ein Grundlagenbuch für C++.</p>
</blockquote>
<p>Nein, Du liest ein C-Buch, das halbherzig nach C++ umgefrickelt wurde.</p>
<p>Cruxi schrieb:</p>
<blockquote>
<p>Nach ... Präprozessoren, Zeigern und Referenzen, und Arrays(Eindimensionale und Mehrdimensionale)</p>
</blockquote>
<p>noch keine std::string? Komisch. Und wozu so früh einen Ausflug zum Präprozessor?</p>
<p>Cruxi schrieb:</p>
<blockquote>
<p>PS: Oben habe ich erwähnt, welche Kapitel ich bereits durchgearbeitet habe. Wenn ihr also darauf achtet, mich nicht mit einem komplett fremden Gebiet wie &quot;Klassen&quot; oder &quot;Funktionen&quot; zu konfrontieren, hilft mir das weitaus besser. <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="🙂"
    /></p>
</blockquote>
<p>Kein Problem. Aber falls der Autor die Initialen J.W. trägt, wechsle das Buch bevor es Dich kaputtmacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121405</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 19 Sep 2011 19:23:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 19:57:05 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Warum keine std::map?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121408</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 19 Sep 2011 19:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 20:16:13 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a><br />
Warum keine std::map?</p>
</blockquote>
<p>Damit Cruxi jetzt ein wenig Rätselspaß ausleben kann, ohne neue Klassen und Funktionen zu lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121412</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 19 Sep 2011 20:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 20:17:35 GMT]]></title><description><![CDATA[<p>Danke für deine Antwort, volkard.</p>
<p>strings kamen leider nur teilweise dran.<br />
Das Buch wurde von Gerhard Willms verfasst.</p>
<p>Ich nutze die Gelegenheit mal und bleibe kurz beim Thema:<br />
Kannst Du mir eventuell einen guten Buchvorschlag für C++ machen,<br />
sodass ich es mit meinem parallel lesen kann, um mehr Sicherheit zu bekommen?<br />
Es sollte einem praktischen Aufbau folgen. Außerdem sollte es gut nachvollziehbare Beispielcodes enthalten. Übungen wären natürlich sehr willkommen.<br />
Für Emphelungen wäre ich sehr dankbar. <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="🙂"
    /></p>
<p>Ich wende mich dann erstmal wieder meinem Code zu.</p>
<p>PS: std::map ist mir noch nicht bekannt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121413</guid><dc:creator><![CDATA[Cruxi]]></dc:creator><pubDate>Mon, 19 Sep 2011 20:17:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Mon, 19 Sep 2011 20:21:25 GMT]]></title><description><![CDATA[<p>Mein Tipp ist C++ Primer Plus (5th ed.).</p>
<p>P.S. Lass das mit &quot;parallel lesen&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121414</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Mon, 19 Sep 2011 20:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to Zeichenhäufigkeit, vereinfachter Code? on Tue, 20 Sep 2011 08:14:50 GMT]]></title><description><![CDATA[<p>Cruxi schrieb:</p>
<blockquote>
<p>strings kamen leider nur teilweise dran.<br />
Das Buch wurde von Gerhard Willms verfasst.</p>
</blockquote>
<p>Dieses ist mir jetzt schon mehrmals negativ aufgefallen. Vielleicht liegt's am Erscheinungsjahr (1999) oder der Autor kann's einfach nicht besser. Es macht jedenfalls von Ferne den Eindruck des typischen C/C++-Buches. (Für alle unbedarften Leser: C/C++ ist ein Negativprädikat)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2121522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2121522</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Sep 2011 08:14:50 GMT</pubDate></item></channel></rss>