Feedback

C++ - Caesar

Veröffentlicht von am 11/29/2006
(3 Bewertungen)
Mächtiger Cäsar! König der Berge! Ein ganz großes Licht!
#include<iostream>
#include<string>
using namespace std;

// Prototyp der Funktion
void chiffriere (const char*, char*, int);


void
ausgabe (char *_text)
{
  int i = 0;
  while (_text[i] != ''\0'')
    {
      cout << _text[i++];
    }
  cout << endl;
}

int
main (void)
{
  char orgtext_1[] = "abcdefghijklmnopqrstuvwxyz\0";
  char orgtext_2[] =
    "qvvfxrbcmnwwmrnjwhtnhcjbcnwjsjrlqknbcnuuvranabcnrwvjunrwkrna\0";
  char text_1[30];
  char text_2[60];
  cout << "--------------Text 1---------------" << endl;
  ausgabe (orgtext_1);
  for (int i = 1; i < 26; i++)
    {
      cout << "Verschiebung um " << i << " Buchstaben:" << endl;
      chiffriere (orgtext_1, text_1, i);
      ausgabe (text_1);
    }
  cout << "--------------Text 2---------------" << endl;
  ausgabe (orgtext_2);
  for (int i = 1; i < 26; i++)
    {
      cout << "Verschiebung um " << i << " Buchstaben:" << endl;
      chiffriere (orgtext_2,text_2, i);
      ausgabe (text_2);
    } return 0;
}

// Implementierung der Funktion




char chiffrierebuchstaben(char letter, int movement) {
	int result;
	result=letter-97;//ASCII-buchstaben
	result+=movement;//Buchstaben verschlüsseln
	while (result>25) {	result-=26;	}//Das Ergebnis wieder in den richtigen Bereich packen
	return char(result+97);
}

// Prototyp der Funktion
void chiffriere (const char *text, char *moved, int movement) {
	int textlength=0;
	char c='' '';
	
	// Ende finden
	textlength=0;
	while (c != ''\0'') {
		c = text[textlength];
		textlength++;
	}
	textlength-=1;//Fehler in der Schleife ausgleichen

    for (int i=0;i<textlength;i++) { //Alle Buchstaben einzeln chiffrieren
    	moved[i]=chiffrierebuchstaben(text[i],movement);
    }
    
    moved[textlength]=''\0'';//Ende in das Feld reinmalen
}



Abgelegt unter Cäsar, mathe, Verschlüsselung.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!