<?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[Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni?]]></title><description><![CDATA[<p>ich habe folgende frage:</p>
<p>in Quizes(9Live) kommt häufig eine frage wie:</p>
<p>tntieenr - was ist gesucht?</p>
<p>Lösung wäre: internet</p>
<p>was für eine funktion müsste man schreiben um vertauschte buchstabe wieder zu einem wort zu machen. Ich stell mir so vor, dass die funktion alle kombinationen ausprobiert und diese mit einer wörterliste einer datei vergleicht. Fällt euch dazu etwas ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127508/buchstabensortiererfunktion-bbaktensoteuschonrtirferuni</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 06:22:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127508.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Nov 2005 20:38:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Thu, 24 Nov 2005 20:38:26 GMT]]></title><description><![CDATA[<p>ich habe folgende frage:</p>
<p>in Quizes(9Live) kommt häufig eine frage wie:</p>
<p>tntieenr - was ist gesucht?</p>
<p>Lösung wäre: internet</p>
<p>was für eine funktion müsste man schreiben um vertauschte buchstabe wieder zu einem wort zu machen. Ich stell mir so vor, dass die funktion alle kombinationen ausprobiert und diese mit einer wörterliste einer datei vergleicht. Fällt euch dazu etwas ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926484</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Thu, 24 Nov 2005 20:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Thu, 24 Nov 2005 20:46:11 GMT]]></title><description><![CDATA[<p>Du hast die Lösung doch schon genannt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/926489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926489</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Thu, 24 Nov 2005 20:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Thu, 24 Nov 2005 21:02:33 GMT]]></title><description><![CDATA[<p>du sortierst die buchstaben im gesuchten wort alphabetisch (eeinrtt) und hast eine alphabetisch sortierte wortliste, wobei die eine art (multi)map ist, wobei jeder eintrag sein muss wie z.b. eeinrtt -&gt; internet.<br />
dann hast du für deine abfrage den befehl</p>
<pre><code class="language-cpp">typedef multimap&lt;string,string&gt; dictionary_t;
   for (dictionary_t::iterator i = dictionary.lower_bound(&quot;bar&quot;); i != dictionary.upper_bound(&quot;bar&quot;); ++i)
      cout &lt;&lt; i-&gt;second;
</code></pre>
<p>und ersparst dir die lästigen permutationen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926513</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Thu, 24 Nov 2005 21:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Thu, 24 Nov 2005 21:05:20 GMT]]></title><description><![CDATA[<p>Informier dich mal über Anagramme.<br />
<a href="http://de.wikipedia.org/wiki/Anagramm" rel="nofollow">http://de.wikipedia.org/wiki/Anagramm</a><br />
<a href="http://www.google.de/search?q=anagram+filetype%3Acpp" rel="nofollow">http://www.google.de/search?q=anagram+filetype%3Acpp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/926518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926518</guid><dc:creator><![CDATA[Spezi L]]></dc:creator><pubDate>Thu, 24 Nov 2005 21:05:20 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Thu, 24 Nov 2005 21:09:53 GMT]]></title><description><![CDATA[<p>Hallo Leon,</p>
<p>es gibt einen Algorithmus 'next_permutation' mit dem man alle Möglichkeiten durchprobieren kann. Etwa so</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;    // sort, next_permutation
#include &lt;string&gt;

int main()
{
    using namespace std;
    string wort = &quot;tntieenr&quot;;
    sort( wort.begin(), wort.end() );
    while( next_permutation( wort.begin(), wort.end() ) )
    {
        // .. suche Wort im Wörterbuch
        if( wort == &quot;internet&quot; )
            cout &lt;&lt; &quot;gefunden&quot; &lt;&lt; endl;
    }
    return 0;
}
</code></pre>
<p>Die vorhergehende Sortierung ist notwendig, da 'next_permutation' eine lexikalische Reihenfolge erzeugt und stoppt (return false) falls kein 'höheres' Wort mehr existiert. sort erzeugt das 'kleinste' mögliche Wort.</p>
<p>Ansonsten ist davie's Idee wahrscheinlich schneller.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926524</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 24 Nov 2005 21:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Fri, 25 Nov 2005 19:26:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef multimap&lt;string,string&gt; dictionary_t; 
   for (dictionary_t::iterator i = dictionary.lower_bound(&quot;bar&quot;); i != dictionary.upper_bound(&quot;bar&quot;); ++i) 
      cout &lt;&lt; i-&gt;second;
</code></pre>
<p>Das versteh ich nicht.</p>
<p>Ich würde jetzt spontan eine funktion schreiben die das wort &quot;tntieenr&quot; und alle Wörter im Dictionary alphabetisch ordnet und dann vergleicht.</p>
<p>1. alphabetischOrdnen-Funktion ist kein problem<br />
2. doch wie vergleiche ich &quot;tntieenr&quot; mit den Wörtern im Dictionary<br />
3. woher kriege ich eine Datei die einen duden erstzt (selbst schreiben dauert zu lange.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927247</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Fri, 25 Nov 2005 19:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Fri, 25 Nov 2005 20:26:29 GMT]]></title><description><![CDATA[<p>3. googlen brachte z.b. das: <a href="http://j3e.de/ispell/igerman98/dict/" rel="nofollow">http://j3e.de/ispell/igerman98/dict/</a></p>
<p>2. wenn du den standardcontainer map (bzw. multimap) kennst, dann kannst du diesen für dich einsetzen.</p>
<p>1. hoffentlich.</p>
<p>so spontan hätte ich sowas gemeint und wenn ich mich jetzt nicht vertan habe, müsste das passen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;algorithm&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

typedef multimap&lt;string, string&gt; dict_t;

string get_word (string const&amp; line) //nur eine behelfsfunktion um die eingabedaten aus dem german98-format richtig zu lesen. im besten fall (eigenes dateiformat) würde ein getline reichen.
{
   string ret;
   for (string::const_iterator i = line.begin(); i != line.end(); ++i)
   {
      if (*i == '/') break;
      else if (*i == '&quot;') //ohne umlaute!
      {
         continue;
      }
      ret += tolower(*i); //aja, damit wir uns auf sicherem terrain bewegen.
   }
   return ret;
}

void load_dictionary (char const* filename, dict_t&amp; dictionary) //schnell dahingeschlampt
{
   ifstream input(filename);
   string line;
   while (getline(input, line))
   {
      string word = get_word(line);
      string sorted = word;
      sort (sorted.begin(), sorted.end());
      dictionary.insert (make_pair(sorted, word)); //multimap ordnet uns alles von selbst, das ist praktisch.
   }

}

int main (int argc, char** argv)
{
   dict_t dictionary;
   for (int i = 1; i &lt; argc; ++i)
   {
      cout &lt;&lt; &quot;Loading &quot; &lt;&lt; argv[i] &lt;&lt; &quot;...\n&quot; &lt;&lt; flush;

      load_dictionary(argv[i], dictionary);
   }

   cout &lt;&lt; &quot;\nBitte geben Sie das gesuchte Anagramm ein: &quot;;
   string anagram;
   cin &gt;&gt; anagram;

   int (*ptr) (int) = tolower;
   transform (anagram.begin(), anagram.end(), anagram.begin(), ptr); //kleinbuchstaben sind toll.

   sort(anagram.begin(), anagram.end());

   cout &lt;&lt; &quot;Übereinstimmung(en) mit:\n&quot;; //und weil multimap schön geordnet ist müssen wir sie nur mehr abfragen und nichts selbst tun.
   for (dict_t::iterator i = dictionary.lower_bound(anagram); i != dictionary.upper_bound(anagram); ++i)
      cout &lt;&lt; '\t' &lt;&lt; i-&gt;second &lt;&lt; endl;

}
</code></pre>
<p>wenn du die container nicht kennst, musst du</p>
<p>a) eine andere lösung dir selbst überlegen</p>
<p>oder</p>
<p>b) mit ihnen umgehen lernen (multimap ist allerdings imo nicht gerade der beste einstieg...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927291</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Fri, 25 Nov 2005 20:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Fri, 25 Nov 2005 20:58:20 GMT]]></title><description><![CDATA[<p>ich nehme a)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927321</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Fri, 25 Nov 2005 20:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Sat, 26 Nov 2005 09:34:47 GMT]]></title><description><![CDATA[<p>ich halte eure lösungen irgendwie für nicht einfach genug.</p>
<p>zunächst mußt du eine möglichst große wortliste haben. schau im internet unter &quot;wordlist&quot; oder so nach. bei den hackern. die benutzen die, um passwörter zu raten.</p>
<p>die sieht ungefähr so aus:</p>
<p>...<br />
not<br />
notar<br />
note<br />
...</p>
<p>und alles, was du machen mußt, ist ein programm schreiben, das das sortierte wort vor das wort schreibt</p>
<pre><code class="language-cpp">int main(){
   string str;
   while(getline(cin,str)){
      string sorted=str;
      sort(str.begin(),str.end());
      cout&lt;&lt;sorted&lt;&lt;' '&lt;&lt;str&lt;&lt;'\n;
   }
}
</code></pre>
<p>aufruf mit deinProg &lt; wordlist.txt &gt; pairlist.txt</p>
<p>...<br />
not not<br />
anort notar<br />
enot note<br />
...</p>
<p>und das jagste noch durch</p>
<p>sort &lt; pairlist.txt &gt; sortedPairlist.txt</p>
<p>fertig.</p>
<p>guckste jetzt 9-live und sie fragen nach &quot;vaklord&quot; dann öffneste du diue datei in deinem editor und tippst Strg-F (suchen) und &quot;vldrako &quot; (das leerzeichen ist nötig, um zu schauen, ob du die einzige lösung hast) und der cursor hüpft auf die zeile</p>
<p>vldrako volkard</p>
]]></description><link>https://www.c-plusplus.net/forum/post/927471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/927471</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 26 Nov 2005 09:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstabensortiererfunktion - Bbaktensoteuschonrtirferuni? on Sat, 26 Nov 2005 21:38:40 GMT]]></title><description><![CDATA[<p>[quote&quot;davie&quot;]googlen brachte z.b. das: <a href="http://j3e.de/ispell/igerman98/dict/" rel="nofollow">http://j3e.de/ispell/igerman98/dict/</a> [/quote]</p>
<p>habe ich heruntergeladen, gefällt mir nicht, vor jedem wort ist eine zeichenkette wie</p>
<p>8/cAachen<br />
/b6Aal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928029</guid><dc:creator><![CDATA[Leon++]]></dc:creator><pubDate>Sat, 26 Nov 2005 21:38:40 GMT</pubDate></item></channel></rss>