snowman25
Goto Top

C-Sharp - Buchstaben-BruteForce mit 3 Zeichen

Folgendes Problem:

Ich hab einen 30 Zeichen langen String "oooooooooooooooooooooooooooooo" der als erstes Element in eine String-Liste wandert.
Der String wird dann weiterverarbeitet, das erste Zeichen zu einem 'a' verwandelt, zurückgegeben und dann wird dieser String in die Liste aufgenommen. Sanach soll aus dem 'a' ein 'l' werden und danach wieder ein 'o' und der 2. Buchstabe ein 'a'. Ein eigentlich recht simpler BruteForce eben.

hab zum debuggen die Ausgabe jeden Strings angeordnet. Allerdings kommt nur folgendes heraus:

ooooooooooooooooooooooooooooooaoooooooooooooooooooooooooooooloooooooooooooooooooooooooooooaaoooooooooooooooooooooooooooollooooooooooooooooooooooooooooaaaaoooooooooooooooooooooooooollllooooooooooooooooooooooooooaaaaaaaaoooooooooooooooooooooollllllllooooooooooooooooooooooaaaaaaaaaaaaaaaaoooooooooooooo

das zeigt mir schon mal 2 Probleme.
1.: Die Iteration des BruteForce funktioniert nicht richtig.
2.: Ich befinde mich in einer Endlosschleife, da das Programm "end" anzeigen sollte, sobald ich durch bin.

Irgendwo habe ich einen herben Denkfehler im Code, aber ich komm einfach nicht darauf wo!

Hier mal der Code, markiert ist die Stelle der Endloschschleife nach ein paar Durchläufen
(Pastebin, da zu viel text für einen Forumsbeitrag ;))

Wo ist mein Fehler?
Ich bin ratlos...

Content-Key: 121491

Url: https://administrator.de/contentid/121491

Printed on: April 20, 2024 at 01:04 o'clock

Member: Snowman25
Snowman25 Jul 30, 2009 at 08:58:46 (UTC)
Goto Top
Hat denn niemand eine Antwort? face-sad
Member: Guenni
Guenni Aug 09, 2009 at 13:54:05 (UTC)
Goto Top
Hi Snowman,

folg. Lösungsvorschlag ist jetzt mal PHP, macht aber nix,

PHP und C sind ja syntaktisch sehr ähnlich, müßte also

leicht portierbar sein.

<?php
/*
Ein Array mit den einzusetzenden Buchstaben
*/
$letters=array(0 => "a", 1 => "i");  
/*
$string initialisieren ...
*/
$string="oooooooooooooooooooooooooooooo";  
/*
... und als erstes Element in einem Array ablegen
*/
$string_array=$string;
/*
Erste for-Schleife kaspert $string Zeichen für Zeichen ab ...
*/
for($i=0;$i<strlen($string);$i++){
/*
... zweite for-Schleife setzt die Buchstaben aus dem Array $letters an
der Position in $string ein, die durch die erste for-Schleife 
bestimmt wird ...
*/
 for($j=0;$j<count($letters);$j++){
  $string[$i]=$letters[$j];
	/*
	... der modifizierte String wird in dem Array abgelegt ...
	*/
	$string_array=$string;
	/*
	... anschl. wird $string neu initialisiert.
	*/
	$string="oooooooooooooooooooooooooooooo";  
 }
}
/*
Ausgabe der Strings
*/
foreach($string_array as $string){
 echo $string."<br>";  
}
?>

Ergebnis:

oooooooooooooooooooooooooooooo
aooooooooooooooooooooooooooooo
iooooooooooooooooooooooooooooo
oaoooooooooooooooooooooooooooo
oioooooooooooooooooooooooooooo
ooaooooooooooooooooooooooooooo
ooiooooooooooooooooooooooooooo
oooaoooooooooooooooooooooooooo
oooioooooooooooooooooooooooooo
ooooaooooooooooooooooooooooooo
ooooiooooooooooooooooooooooooo
oooooaoooooooooooooooooooooooo
oooooioooooooooooooooooooooooo
ooooooaooooooooooooooooooooooo

... u.s.w.

Gruß
Günni
Member: Snowman25
Snowman25 Aug 10, 2009 at 06:49:58 (UTC)
Goto Top
Hallo Günni,

erstmal danke, dass du dir die Mühe gemacht hast :D
aber leider stimmt deine Lösung auch nicht ganz.
nach
oaoooooooooooooooooooooooooooo
sollte
aaoooooooooooooooooooooooooooo
, dann
iaoooooooooooooooooooooooooooo
und dann erst
oioooooooooooooooooooooooooooo
kommen...

Aber nochmals vielen Dank für deine Mühe.
Ich habe inzwischen auch ein wenig Feedback in einem C#-Forum erhalten und werde daraus wahrscheinlich etwas basteln können.