[C++] v erschlüsselung nach hebräischer methode

Hehe ;) Du mallocst ein eindimensionales Array, ich hingegen in dem Link ein zweidimensionales ;)
 
hab es nun auch korrekt gelöst. sogar mit langen zeichenketten funzt es.
allerdings bleibt das array bei 7 spalten, nur die zeilen sind variabel.
die abfrage ob das feld im array leer ist hab ich auch ganz einfach gelöst, beim deklarieren des arrays hab ich erstmal alle felder auf 0 gesetzt. so kann ich dann prüfen ob das feld gleich 0 ist.


Code:
#include <iostream.h>
#include <string.h>


void main()
{

	// Deklaration der Varibalen und Arrays
	char string[700];
	char array1[7][100]={0};
	int z=0;
	int s=0;
	int y;
	int k;


	// Ausgabe der Beschreibung und Eingabe des Strings
	cout << "Dieses Programm verschluesselt eine Zeichenkette nach dem hebraeischen Verfahren.\n\nBitte geben sie die zu verschluesselnde Zeichekette ohne Lerrzeichen ein.(max 700 Zeichen)\n";
	cin >> string;

	y=strlen(string);
	k=y / 7;
	// Verschlüsselung
	for (int x=0;x<y;x++)
	{
		array1[s][z]=string[x];
		if (s==6)
		{
			s=0;
			z++;
		}
		else
			s++;
		if (z==k)
			break;
	}

	// Auslesen des Verschlüsseltem Arrays
	s=0;
	z=0;
	cout << "\nVerschluesselte Zeichenkette:\n";
	for (x=0;x<y;x++)
	{
		if (array1[s][z] != 0)
		cout  << array1[s][z];
		else
			x--;

		if (z==k)
		{
			s++;
			z=0;
		}
		else
			z++;
		
		if (s==7)
			break;

	}
	cout << "\n\n";

}


danke auch an alle für die hilfe!
 
</Life> schrieb:
Hehe ;) Du mallocst ein eindimensionales Array, ich hingegen in dem Link ein zweidimensionales ;)

mensch, informatiker sind schriebfaul, das weis man doch! :D

ne, mal im ernst, bei malloc reserviert man immer so, egal ob 2, 3 oder gar N dimensional.
wenn du ein 2d feld haben möchtest geht das so:

Code:
minen = (int *) malloc([B](hoehe)*(breite)[/B]*sizeof(int));
if(minen == NULL){
    printf("\nFEHLER: Kein Speicher konnte reserviert werden!\n");
    return 1;
}
(is aus meinem minesweeper programm ;) )
 
Nein, das ist trotzdem nur eindimensional.
Du musst immer mit x+y*Breite drauf zugreifen, statt x und y benutzen zu können.
 
WhiteShark schrieb:
hab es nun auch korrekt gelöst. sogar mit langen zeichenketten funzt es.
allerdings bleibt das array bei 7 spalten, nur die zeilen sind variabel.
die abfrage ob das feld im array leer ist hab ich auch ganz einfach gelöst, beim deklarieren des arrays hab ich erstmal alle felder auf 0 gesetzt. so kann ich dann prüfen ob das feld gleich 0 ist.

<code>

danke auch an alle für die hilfe!
Ich verstehe immernoch nicht, warum du dich an deinem 2-dimensionalen Array festklammerst...
 
</Life> schrieb:
Ich verstehe immernoch nicht, warum du dich an deinem 2-dimensionalen Array festklammerst...
weil wir lernen sollen mit mehrdimensionalen arrays zu arbeiten und das so machen sollen :-)

von daher kann ich es net anders machen.
zudem bin ich noch net so weit in c++ das ich verstehen kann wie genau du das meinst.
 
Ok, dann verstehe ich das -g-

Kannst es ja als intelligentere Alternative anbieten ;)

Naja, egal wie... viel Spass beim decrypt :)
 
</Life> schrieb:
Ok, dann verstehe ich das -g-

Kannst es ja als intelligentere Alternative anbieten ;)

Naja, egal wie... viel Spass beim decrypt :)
kann ich machen, gibt sicher ne bessere note dann :-)

aber decrypt bekomm ich glaubich net hin.
net wegen dem programmieren, ich weiß netmal wie des gehen soll.

soll ja genauso in ein array (7x4) geschrieben werden zum entschlüsseln.
hab allerdings mal auf nem blatt die verschlüsselte zeichenkette in eine tabelle zeilenweise und auch spaltenweise geschrieben und lange überlegt wie man das jetzt entschlüsseln kann.

aber irgendwie scheint des absolut net möglich zu sein.
 
natürlich kann man das auch wieder entschlüsseln, sonst hätte das ganze keinen Sinn und du könnstest gleich eine Papierkorb-Funktion daraus machen ;)
 
WhiteShark schrieb:
aber irgendwie scheint des absolut net möglich zu sein.
Schau dir mein Script an ;)
$txt1 -> $txt2: Verschlüsselung
$txt2 -> $txt3: Entschlüsselung

Und ganz ohne Arrays ;) (von den Strings als eindimensionale char-Arrays natürlich abgesehen)
 
Zurück
Oben