<?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[String verschlüsseln]]></title><description><![CDATA[<p>Aufgabe sieht wie folgt aus:</p>
<p>Schreiben sie ein C++ Programm, das einen String verschlüsselt indem es benachbarte Zeichen miteinander vertauscht, also das 1. mit dem 2. Zeichen , das 3. mit dem 4. usw....<br />
Sie müssen prüfen ob der eingegebene String aus einer geraden Anzahl von Zeichen besteht. Falls nicht, muss der String erneut eingelesen werden. Siehe Testlauf...</p>
<p>Testlauf:<br />
String=? &gt;&gt; GIP<br />
String=? &gt;&gt; Informatik<br />
Codiert; &gt;&gt; nIofrtaki</p>
<p>**********************************</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>int main ()<br />
{<br />
int l;<br />
string s;<br />
char c;</p>
<p>do<br />
{<br />
cout &lt;&lt; &quot;String = ?&quot;;<br />
cin &gt;&gt; s; // String einlesen<br />
l = (int)s.length(); // Länge des Strings<br />
}while (l%2) // ist der String gerade?!</p>
<p>for (int i=0; i&lt;l; i=i+2) //Schleife so lange i kleiner Länge ist<br />
// verschiebung von i um 2 ... +2 halt</p>
<p>{<br />
c=s[i] //c bekommt das zeichen von i zugewiesen<br />
s[i] = s[i+l]; // das Zeichen i bekommt i+Länge zugewiesen (WIESO???)<br />
s[i+l] = c; //?!?!?!?!?!?!?</p>
<p>}</p>
<p>cout &lt;&lt; &quot;codiert: &quot; &lt;&lt; s &lt;&lt; endl &lt;&lt; endl;<br />
return 0;<br />
}</p>
<p>Verstehe die letzte Schleife nicht so ganz... kann sie mir wer in Worten ausdrücken?!</p>
<p>Wäre super!<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258563/string-verschlüsseln</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 04:56:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258563.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jan 2010 10:04:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 10:04:54 GMT]]></title><description><![CDATA[<p>Aufgabe sieht wie folgt aus:</p>
<p>Schreiben sie ein C++ Programm, das einen String verschlüsselt indem es benachbarte Zeichen miteinander vertauscht, also das 1. mit dem 2. Zeichen , das 3. mit dem 4. usw....<br />
Sie müssen prüfen ob der eingegebene String aus einer geraden Anzahl von Zeichen besteht. Falls nicht, muss der String erneut eingelesen werden. Siehe Testlauf...</p>
<p>Testlauf:<br />
String=? &gt;&gt; GIP<br />
String=? &gt;&gt; Informatik<br />
Codiert; &gt;&gt; nIofrtaki</p>
<p>**********************************</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>int main ()<br />
{<br />
int l;<br />
string s;<br />
char c;</p>
<p>do<br />
{<br />
cout &lt;&lt; &quot;String = ?&quot;;<br />
cin &gt;&gt; s; // String einlesen<br />
l = (int)s.length(); // Länge des Strings<br />
}while (l%2) // ist der String gerade?!</p>
<p>for (int i=0; i&lt;l; i=i+2) //Schleife so lange i kleiner Länge ist<br />
// verschiebung von i um 2 ... +2 halt</p>
<p>{<br />
c=s[i] //c bekommt das zeichen von i zugewiesen<br />
s[i] = s[i+l]; // das Zeichen i bekommt i+Länge zugewiesen (WIESO???)<br />
s[i+l] = c; //?!?!?!?!?!?!?</p>
<p>}</p>
<p>cout &lt;&lt; &quot;codiert: &quot; &lt;&lt; s &lt;&lt; endl &lt;&lt; endl;<br />
return 0;<br />
}</p>
<p>Verstehe die letzte Schleife nicht so ganz... kann sie mir wer in Worten ausdrücken?!</p>
<p>Wäre super!<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837378</guid><dc:creator><![CDATA[misthase83]]></dc:creator><pubDate>Tue, 12 Jan 2010 10:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 10:24:07 GMT]]></title><description><![CDATA[<p>1. Das hier ist das C++/CLI Forum, Du bist also falsch hier!<br />
2. Benutze die Code Tags (bzw. die C/C++) um deinen Code zu formatieren</p>
<p>Hoffentlich verschiebt dich ein Mod. bald...</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837395</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 12 Jan 2010 10:24:07 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 10:51:50 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18363.html" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837412</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 12 Jan 2010 10:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 10:56:14 GMT]]></title><description><![CDATA[<p>Das ist halt der Nachteil wenn man mit Variablen wie i, I, l, L, 1 und so weiter arbeitet. Da fällt die Unterscheidung schnell mal schwer. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Wobei es ja auch Leute gibt die mit verschachtelten Zählvariablen der Art I, II, III, IV, V, VI, VII usw arbeiten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837417</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 12 Jan 2010 10:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 11:09:56 GMT]]></title><description><![CDATA[<p>Um Fellhuhns Aussage etwas zu präzisieren.</p>
<p>misthase83 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">for (int i=0; i&lt;l; i=i+2) // Das l ist ein kleines L
{
    c=s[i]  
    s[i] = s[i+l];  // das 1 ist eine Eins
    s[i+l] = c;     // das 1 ist eine Eins
}
</code></pre>
</blockquote>
<p>Abhilfe aus solchen Dilemmas: sprechende Variablen verwenden. Statt dem kleinen L z.B. laenge oder length ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837431</guid><dc:creator><![CDATA[HurgaHurga]]></dc:creator><pubDate>Tue, 12 Jan 2010 11:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 11:18:30 GMT]]></title><description><![CDATA[<p>Naja, hab es mal für dich anders formatiert und sinnvollere Variablennamen vergeben <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

int main ()
{
	using namespace std;

	string userInput;
	size_t strLength;
	do
	{
		cout &lt;&lt; &quot;String = ?&quot;;
		cin &gt;&gt; userInput;

		strLength = userInput.length();
	} while(strLength%2)

	char charbuff;
	for(string::size_type curChar = 0; curChar &lt; strLength; curChar += 2)
	{
		charbuff				= userInput[curChar];
		userInput[curChar]		= userInput[curChar + l];
		userInput[curChar + l]	= charbuff;
	}

	cout &lt;&lt; &quot;codiert: &quot; &lt;&lt; userInput &lt;&lt; endl &lt;&lt; endl;
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1837437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837437</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Tue, 12 Jan 2010 11:18:30 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 13:05:30 GMT]]></title><description><![CDATA[<p>Das ist eine Frage zur Verschlüsselung allgemein. Hierfür gibt es ausgefeilte Möglichkeiten (mit fremden Programmen). Will man das selbst machen, ist der Ansatz schon brauchbar. Noch etwas besser wäre es, den gesamten Zeichensatz von ASCII zum Austausch zu verwenden. Bedenke dabei aber bitte: Jeder halbwegs clevere Geheimdienst knackt das in kürzester Zeit. Ich habe das mal für einen Kunden gemacht und zusätzlich einen Haufen Schrott hineingeschrieben. Der Kunde ist zu einem Freund vom Geheimdienst gegangen und dieser konnte die Verschlüsselung innerhalb weniger Minuten knacken. Sein Kommentar: etwas ungewöhnlich, aber einfach!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837511</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Tue, 12 Jan 2010 13:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 13:23:12 GMT]]></title><description><![CDATA[<p>Äh, das geht hier wohl eher um eine Aufgabe aus dem Studium und nicht um ernsthafte Verschlüsselung. Da ist die eher absolut lachhaft und nicht einmal als Verschlüsselung anzuerkennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837525</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 12 Jan 2010 13:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 16:22:39 GMT]]></title><description><![CDATA[<p>HurgaHurga schrieb:</p>
<blockquote>
<p>Um Fellhuhns Aussage etwas zu präzisieren.</p>
<p>misthase83 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">for (int i=0; i&lt;l; i=i+2) // Das l ist ein kleines L
{
    c=s[i]  
    s[i] = s[i+l];  // das 1 ist eine Eins
    s[i+l] = c;     // das 1 ist eine Eins
}
</code></pre>
</blockquote>
<p>Abhilfe aus solchen Dilemmas: sprechende Variablen verwenden. Statt dem kleinen L z.B. laenge oder length ...</p>
</blockquote>
<p>Ja, dass es sich da um Einsen handelt ist mir klar...<br />
Doch was passiert da genau und wieso?!<br />
c wird = dem zeichen(i) im feld s gesetzt...<br />
das wird dann nochma i+1 gemacht...<br />
und das wieder = c ....</p>
<p>?!?!?! checks net ganz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837674</guid><dc:creator><![CDATA[misthase83]]></dc:creator><pubDate>Tue, 12 Jan 2010 16:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 17:12:25 GMT]]></title><description><![CDATA[<p>Wenn du zwei Variablen vertauschen willst brauchst du eine temporäre Variable (in diesem Fall c) um den Tausch vornehmen zu können.</p>
<p>Angenommen die Schleife sei im Moment bei i=2</p>
<pre><code class="language-cpp">c=s[2]  // du merkst dir den Wert von s[2], weil er in der nächsten Zeile per Zuweisung überschrieben wird
s[2] = s[3];  // hättest du dir s[2] vorher nicht gemerkt wäre der Wert nach dieser Zeile verschwunden
s[3] = c;
</code></pre>
<p>Jetzt ist der Wert von s[2] in s[3] abgelegt und umgekehrt. Es wurden, wie in der Aufgabe verlangt, zwei benachbarte Felder s[i] und s[i+1] vertauscht. Nichts weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837710</guid><dc:creator><![CDATA[HurgaHurga]]></dc:creator><pubDate>Tue, 12 Jan 2010 17:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 17:20:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">c=s[i] // in c wird der wert von s[i] zwischengespeichert. 
s[i] = s[i+l]; // s[i] erhält den Wert von s[i+1], also eine Stelle nach s[i]
s[i+l] = c; // die Stelle nach s[i] (der aktuellen Stelle) erhält den Wert von c, also dem ehemaligen s[i].
</code></pre>
<p>Somit wird die aktuelle Stelle mit der nächsten Stelle vertauscht.</p>
<pre><code class="language-cpp">for (int i=0; i&lt;l; i=i+2)
</code></pre>
<p>Nach dem vertauschen der ersten (i = 0) mit der zweiten (i + 1 = 1) wird die dritte die &quot;aktuelle&quot; Stelle, also s[2]. Diese wird mit der vierten s[2+1] vertauscht. Dies geht so weiter bis zum Abbruch der Schleife, also wenn i größer als die Länge des Strings ist.</p>
<p>Entschuldigung, ich habe zu langsam getippt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837714</guid><dc:creator><![CDATA[Adam S]]></dc:creator><pubDate>Tue, 12 Jan 2010 17:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 17:23:06 GMT]]></title><description><![CDATA[<p>Ach so, vielleicht hapert es bei dir in Sachen Array, String usw. ...</p>
<p>Wenn du, wie in deinem Beispiel, eine Varialbe vom Typ std::string hast, dann kannst du über den Indexoperator auf die einzelnen Zeichen zugreifen.</p>
<p>Also, z.B.:</p>
<pre><code class="language-cpp">string s = &quot;Hallo&quot;;

s[0] wäre dann 'H'
s[1] wäre 'a'
s[2] wäre 'l'
// ...
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36793">@Adam</a><br />
Doppelt hält besser <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837717</guid><dc:creator><![CDATA[HurgaHurga]]></dc:creator><pubDate>Tue, 12 Jan 2010 17:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to String verschlüsseln on Tue, 12 Jan 2010 19:46:58 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Äh, das geht hier wohl eher um eine Aufgabe aus dem Studium und nicht um ernsthafte Verschlüsselung. Da ist die eher absolut lachhaft und nicht einmal als Verschlüsselung anzuerkennen.</p>
</blockquote>
<p>Ja, die Zeiten der 'Zwiebelschrift' und von 'Enigma' sind wohl vorbei. Aber lasst ihn doch nachdenken und etwas finden. Für nicht professionelle Entschlüssler kann es allemal reichen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1837834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1837834</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Tue, 12 Jan 2010 19:46:58 GMT</pubDate></item></channel></rss>