<?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[Längsten String finden]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Also ich lege dynamisch eine vom Benutzer eingegebene Anzahl von Strings an. Klappt alles toll, jedoch muss ich auch den längsten und den kürzesten String ausgeben. Hab dazu schon 2 Schleifen geschrieben (in der main()), die aber nicht richtig funktionieren.</p>
<p>Ich poste mal den kompletten code damit ihr den Zusammenhang versteht...</p>
<p>Wie komm ich an den längsten und den kürzesten String?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;functional&gt;
#include &lt;fstream&gt;
#include &lt;cctype&gt;
using namespace std;

int main()
{
	int anzahl=0,i=0;
	int einlesen(string*, int&amp;);
	int umwandeln(string*, int&amp;);

	// Anzahl der Strings definieren
	cout &lt;&lt; &quot;Wie viele Zeichenketten möchten Sie eingeben?&quot; &lt;&lt; endl &lt;&lt; endl;
	cin &gt;&gt; anzahl;
	fflush(stdin);
	string *feld = new string[anzahl];

	// Einlesen der Strings
	einlesen(feld, anzahl);

	// Umwandlung im Kleinbuchstaben und Sortierung
	umwandeln(feld, anzahl);

	// Ausgabe der sortierten Strings
	while (i &lt; anzahl){
		cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot;: &quot; &lt;&lt; feld[i] &lt;&lt; endl;
		i++;
	}

	//Laengster String

	int lang = 0;

	for (int i=0; i &lt; anzahl; i++) {
		if (feld[i+1].length() &gt;= feld[lang].length() ) {
			lang = i;
		}
	}

	//Kuerzester String

        int kurz = 0;

	for (int i=0; i &lt; anzahl; i++) {
		if (feld[i+1].length() &lt;= feld[kurz].length()) {
			kurz = i;
		}
	}

	cout &lt;&lt; &quot;lang: &quot; &lt;&lt; lang+1 &lt;&lt; endl;
	cout &lt;&lt; &quot;kurz: &quot; &lt;&lt; kurz+1 &lt;&lt; endl;

	// Halt-Befehl
	cin.get();

	return 0;
}

int einlesen(string* pfeld, int&amp; anzahl) {

    for (int j=0; j &lt; anzahl ;j++) {
		cout &lt;&lt; &quot;Bitte geben Sie string &quot; &lt;&lt; j+1 &lt;&lt; &quot; ein!&quot; &lt;&lt; endl;
		getline(cin,pfeld[j]);
	}

	return 0;
}
int umwandeln(string* pfeld, int&amp; anzahl) {

	for (int j=0; j &lt; anzahl; j++) {
		for (unsigned int k=0; k &lt; pfeld[j].length(); k++) {
			pfeld[j][k] = tolower(pfeld[j][k]);
		}
		sort(pfeld[j].begin(), pfeld[j].end());
	}
	return 0;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/208713/längsten-string-finden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 21:33:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208713.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Mar 2008 16:45:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 16:45:35 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Also ich lege dynamisch eine vom Benutzer eingegebene Anzahl von Strings an. Klappt alles toll, jedoch muss ich auch den längsten und den kürzesten String ausgeben. Hab dazu schon 2 Schleifen geschrieben (in der main()), die aber nicht richtig funktionieren.</p>
<p>Ich poste mal den kompletten code damit ihr den Zusammenhang versteht...</p>
<p>Wie komm ich an den längsten und den kürzesten String?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;functional&gt;
#include &lt;fstream&gt;
#include &lt;cctype&gt;
using namespace std;

int main()
{
	int anzahl=0,i=0;
	int einlesen(string*, int&amp;);
	int umwandeln(string*, int&amp;);

	// Anzahl der Strings definieren
	cout &lt;&lt; &quot;Wie viele Zeichenketten möchten Sie eingeben?&quot; &lt;&lt; endl &lt;&lt; endl;
	cin &gt;&gt; anzahl;
	fflush(stdin);
	string *feld = new string[anzahl];

	// Einlesen der Strings
	einlesen(feld, anzahl);

	// Umwandlung im Kleinbuchstaben und Sortierung
	umwandeln(feld, anzahl);

	// Ausgabe der sortierten Strings
	while (i &lt; anzahl){
		cout &lt;&lt; &quot;Zeile &quot; &lt;&lt; i+1 &lt;&lt; &quot;: &quot; &lt;&lt; feld[i] &lt;&lt; endl;
		i++;
	}

	//Laengster String

	int lang = 0;

	for (int i=0; i &lt; anzahl; i++) {
		if (feld[i+1].length() &gt;= feld[lang].length() ) {
			lang = i;
		}
	}

	//Kuerzester String

        int kurz = 0;

	for (int i=0; i &lt; anzahl; i++) {
		if (feld[i+1].length() &lt;= feld[kurz].length()) {
			kurz = i;
		}
	}

	cout &lt;&lt; &quot;lang: &quot; &lt;&lt; lang+1 &lt;&lt; endl;
	cout &lt;&lt; &quot;kurz: &quot; &lt;&lt; kurz+1 &lt;&lt; endl;

	// Halt-Befehl
	cin.get();

	return 0;
}

int einlesen(string* pfeld, int&amp; anzahl) {

    for (int j=0; j &lt; anzahl ;j++) {
		cout &lt;&lt; &quot;Bitte geben Sie string &quot; &lt;&lt; j+1 &lt;&lt; &quot; ein!&quot; &lt;&lt; endl;
		getline(cin,pfeld[j]);
	}

	return 0;
}
int umwandeln(string* pfeld, int&amp; anzahl) {

	for (int j=0; j &lt; anzahl; j++) {
		for (unsigned int k=0; k &lt; pfeld[j].length(); k++) {
			pfeld[j][k] = tolower(pfeld[j][k]);
		}
		sort(pfeld[j].begin(), pfeld[j].end());
	}
	return 0;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1478402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478402</guid><dc:creator><![CDATA[tommylee]]></dc:creator><pubDate>Fri, 21 Mar 2008 16:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 16:52:00 GMT]]></title><description><![CDATA[<p>Was bekommst du den heraus? Was genau funktioniert nicht?</p>
<p>btw:<br />
Ich habe das seltsame Gefühl, dass deine beiden Vergleichsschleifen beide über die Arraygrenze hinauslaufen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478406</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Fri, 21 Mar 2008 16:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 16:53:26 GMT]]></title><description><![CDATA[<p>Tue dir selber den gefallen und nutze einen Container aus der Standardbibliothelk für die Liste der Strings.</p>
<p>Ansonsten: Der Index bei einem Array (und auch bei den Standardcontainern) beginnt bei 0 und endet bei n-1, wobei n die Anzahl der Elemente ist.</p>
<p>Bei deiner Schleife greifst du aber auf die Elemente von 1 bis n zu. Das kann nicht gut gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478407</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Fri, 21 Mar 2008 16:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 16:56:44 GMT]]></title><description><![CDATA[<p>Ja mal so mal so... Kommt halt drauf an an welcher Position ein langer oder kurzer String ist... mal kommt das richtige raus und mal nicht...</p>
<p>Sorry hört sich blöd an, aber ich hoffe das jemand eine &quot;sichere&quot; Methode, die besagten Strings zu finden, weiß.</p>
<p>Das mit den Grenzen ist natürlich auch möglich...</p>
<p>Eine Idee und etwas pseudo-code würden mir schon helfen... <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/1478409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478409</guid><dc:creator><![CDATA[tommylee]]></dc:creator><pubDate>Fri, 21 Mar 2008 16:56:44 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 17:49:27 GMT]]></title><description><![CDATA[<p>Oft hilft es das Rad nicht immer neu erfinden zu wollen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;list&gt;
#include &lt;string&gt;
#include &lt;iterator&gt;
#include &lt;algorithm&gt;

typedef std::list &lt;std::string&gt; StringList;
typedef StringList::const_iterator Iterator;

StringList read_strings()
{
	StringList strings;

	std::string string;
	while (std::getline(std::cin, string))
		if (string == &quot;&quot;)
			break;
		else
			strings.push_back(string);

	return strings;
}

bool is_shorter(std::string const&amp; lhs, std::string const&amp; rhs)
{
	return lhs.size() &lt; rhs.size();
}

int main()
{
	std::cout &lt;&lt; &quot;Geben sie ein paar Strings ein: &quot; &lt;&lt; std::endl;

	// read:
	StringList strings = read_strings();

	// sort:
	strings.sort();

	std::cout &lt;&lt; &quot;Hier ihre Eingaben, aber sortiert:&quot; &lt;&lt; std::endl;
	std::copy(strings.begin(), strings.end(), 
		std::ostream_iterator &lt;std::string&gt; (std::cout, &quot;\n&quot;));
	std::cout &lt;&lt; std::endl;

	// longest string:
	Iterator longest =
		std::max_element(strings.begin(), strings.end(), is_shorter);

	std::cout &lt;&lt; &quot;Die laengste Eingabe war: &quot; &lt;&lt; *longest &lt;&lt; std::endl
		&lt;&lt; &quot;Mit einer Laenge von &quot; &lt;&lt; longest-&gt;size() &lt;&lt; &quot; Buchstaben. &quot; 
		&lt;&lt; std::endl;

	// shortest string:
	Iterator shortest =
		std::min_element(strings.begin(), strings.end(), is_shorter);

	std::cout &lt;&lt; &quot;Die kuerzeste Eingabe war: &quot; &lt;&lt; *shortest &lt;&lt; std::endl
		&lt;&lt; &quot;Mit einer Laenge von &quot; &lt;&lt; shortest-&gt;size() &lt;&lt; &quot; Buchstaben. &quot; 
		&lt;&lt; std::endl;

	std::cin.get();
}
</code></pre>
<p>Strings werden in unbegrenzter Anzahl eingelesen bis man einfach so Enter drückt ohne vorher etwas einzutippen. Ansonsten ist der größte Teil des Codes Ausgabe. Der Rest sollte einigermaßen selbst erklärend sein.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478429</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Fri, 21 Mar 2008 17:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 18:10:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13710">@Don06</a>...</p>
<p>wow... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> jetzt bin ich erstmal platt.. nachdem ich den code kurz auseinandergefriemelt hatte, kam ich mir gleich richtig bescheuert vor. bin noch nicht so lange dabei und die verwendung von typedef seh ich zum ersten mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>hoffentlich komm ich da auch mal hin, solche code zu erzeugen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>eine sache noch: gibts ne möglichkeit mein problem zu lösen, ohne meinen entwurf vollständig zu verwerfen? weil dein code ja ganz anders aufgebaut ist, als meiner</p>
<p><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="😕"
    /> <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="😕"
    /> <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="😕"
    /></p>
<p>danke für den super code und die erleuchtung! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478438</guid><dc:creator><![CDATA[tommylee]]></dc:creator><pubDate>Fri, 21 Mar 2008 18:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to Längsten String finden on Fri, 21 Mar 2008 18:52:01 GMT]]></title><description><![CDATA[<p>Einfach gleich nach Länge sortiert speichern.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;iostream&gt;

typedef std::map &lt;size_t, std::string&gt; StringMap;

StringMap read_strings()
{
    StringMap strings;

    std::string string;
    while (std::getline(std::cin, string))
        if (string == &quot;&quot;)
		    return strings;
        else
			strings.insert(std::make_pair(string.length(),string));

}

int main()
{
    std::cout &lt;&lt; &quot;Geben sie ein paar Strings ein: &quot; &lt;&lt; std::endl;

    StringMap strings = read_strings();
	if(strings.size() == 0) return 0;

	std::cout &lt;&lt; &quot;Die laengste Eingabe war: &quot; &lt;&lt; strings.rbegin()-&gt;second &lt;&lt; std::endl;

    std::cout &lt;&lt; &quot;Die kuerzeste Eingabe war: &quot; &lt;&lt; strings.begin()-&gt;second &lt;&lt; std::endl;
}
</code></pre>
<p>Was du machen musst, wenn man mehrere gleich lange eingibt, darfst du dir selber ausdenken (std::multimap).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1478459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1478459</guid><dc:creator><![CDATA[oder]]></dc:creator><pubDate>Fri, 21 Mar 2008 18:52:01 GMT</pubDate></item></channel></rss>