Buchstaben Verschiebung von variable also "uftu" zurück nach "test"
#include <stdio.h>
#include <string.h>
int main()
{
char text[101];
unsigned int i;
printf("Eingabe Text (bis zu %i Zeichen):\n", sizeof (text)-1);
gets(text);
printf("\nDer Text lautet\n%s\n\n", text);
for (i=0; i<strlen(text); i++)
{
{
text[i]++;
text[i]='a';
}
}
printf("Der Text lautet codiert\n%s\n", text);
getchar();
return 0;
}
Also wenn ich "test" eingebe bekomme ich "uftu" raus (später will ich den wert von einer textdatei einlesen und uftu nach test wieder zurück verschiebt
Danke mghelp
#include <string.h>
int main()
{
char text[101];
unsigned int i;
printf("Eingabe Text (bis zu %i Zeichen):\n", sizeof (text)-1);
gets(text);
printf("\nDer Text lautet\n%s\n\n", text);
for (i=0; i<strlen(text); i++)
{
text[i]++;
}
}
printf("Der Text lautet codiert\n%s\n", text);
getchar();
return 0;
}
Also wenn ich "test" eingebe bekomme ich "uftu" raus (später will ich den wert von einer textdatei einlesen und uftu nach test wieder zurück verschiebt
Danke mghelp
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 46350
Url: https://administrator.de/contentid/46350
Ausgedruckt am: 15.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
@filippg
Da hab ich auch gegrübelt, was denn nun die Frage ist...
Ich denke, er hat es HINverschoben und will es wieder ZURÜCKverschieben. Ist aber nur eine Vermutung.
Wie hatten mal einen ähnlichen Thread: "Ich habe mit C in die Registry geschrieben - wie kann ich das wieder lesen?" oder so ähnlich.
BTW, hast Du mal einen Blick auf StarUML geworfen?
@mghelp
Wenn Du irgendwelche Strings transformieren willst, solltest Du dazu eine Funktion verwenden, wenn der Algorithmus simpel genug ist, um VOR/RETOUR zu transformieren.
Meinetwegen auch zwei Funktionen (schiebhin()/schiebher()), falls es mal komplexer werden sollte.
Beispiel:
Gruß
Biber
Da hab ich auch gegrübelt, was denn nun die Frage ist...
Ich denke, er hat es HINverschoben und will es wieder ZURÜCKverschieben. Ist aber nur eine Vermutung.
Wie hatten mal einen ähnlichen Thread: "Ich habe mit C in die Registry geschrieben - wie kann ich das wieder lesen?" oder so ähnlich.
BTW, hast Du mal einen Blick auf StarUML geworfen?
@mghelp
Wenn Du irgendwelche Strings transformieren willst, solltest Du dazu eine Funktion verwenden, wenn der Algorithmus simpel genug ist, um VOR/RETOUR zu transformieren.
Meinetwegen auch zwei Funktionen (schiebhin()/schiebher()), falls es mal komplexer werden sollte.
Beispiel:
#include <stdio.h>
#include <string.h>
#define VOR 1
#define RETOUR -1
void verschieb(char* in, char* out, int diff);
int main()
{
char text[101];
char schiebtext[101];
printf("Eingabe Text (bis zu %i Zeichen):\n", sizeof (text)-1);
gets(text);
printf("\nDer Text lautet\n%s\n\n", text);
verschieb(text, schiebtext, VOR);
printf("Verschobener Text VOR lautet \n%s\n", schiebtext);
verschieb(schiebtext, schiebtext , RETOUR);
printf("Verschobener Text RETOUR lautet \n%s\n", schiebtext);
getchar();
return 0;
}
void verschieb(char* in, char *out, int diff) {
int i;
for (i=0; i<strlen(in); i++) {
out[i] = in[i]+diff;
out[strlen(in)]='\0';
}
}
Gruß
Biber
Nein, aber es steht auf meiner Liste mit Software, die ich mir mal anschauen will. Ich hatte mir mal die Screenshots angeschaut (finde ich immer schön, wenn's viele davon hat) und die Features gelesen, da schaute es mir dann für meine Aufgabe schon wieder viel zu dick aus. Aber wenn ich mal wieder wirklich UML modellieren will (und nicht nur zeichnen) werde ich das mal testen.
Filipp
Meine Frage war "Ich habe Buchstabenverschoben
und wollte dies rückgängig machen".
Hm... ohne jetzt irgendwem auf die Füsse treten zu wolle, aber... eine Frage ist das nun eindeutig auch nicht.und wollte dies rückgängig machen".
Filipp
@mghelp
Hi,
verschieben oder verschlüsseln kann man auch mit dem
überladenen XOR-Operator.
Nebeneffekt: Je nach key/input kann es passieren, dass auch
nichtdruckbare Zeichen ausgegeben werden.
Dann gibt’s bei der Ausgabe schonmal einen Zeilenvorschub
oder ein Piep aus dem Lautsprecher.
Grüße
Günni
Hi,
verschieben oder verschlüsseln kann man auch mit dem
überladenen XOR-Operator.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
// Klasse String
class CString{
private:
char *string;
int size;
public:
CString(); //Standard-Konstruktor
CString(const char*); //Konstruktor mit Initialisierung
CString& operator^(const char*); //Xor-Operator überladen
void CString_Print(); // Ausgabe string
~CString(); //Destruktor
};
// Implementierung der Methoden
CString::CString(){
string=0;
size=0;
}
CString::CString(const char *s){
size = strlen(s);
string = new char[size + 1];
strcpy(string, s);
}
CString& CString::operator^(const char *k){
int i,j,l;
l=strlen(k);
for(i=j=0;i<size;i++,j=++j%l){
string[i]^=k[j];
}
return *this;
}
void CString::CString_Print(){
cout << string << endl;
}
CString:: ~CString()
{
delete string;
}
// Testprogramm
int main(int argc,char *argv){
char input[100];
char *key="12345"; // oder abcde, wdlkv, halt irgendwas
puts("Geben Sie ein(en) Wort(Text) ein:");
gets(input);
CString s=CString(input); // Eingabe an neues Objekt übergeben
puts("Text: ");
s.CString_Print(); // Eingabe am Bildschirm ausgeben
s ^ key; //Text verschlüsseln
puts("Verschluesselt: ");
s.CString_Print(); // Verschlüsselt ausgeben
s ^ key; // Text entschlüsseln
puts("Entschluesselt: ");
s.CString_Print(); // Entschlüsselt ausgeben
getch();
return 0;
}
Nebeneffekt: Je nach key/input kann es passieren, dass auch
nichtdruckbare Zeichen ausgegeben werden.
Dann gibt’s bei der Ausgabe schonmal einen Zeilenvorschub
oder ein Piep aus dem Lautsprecher.
Grüße
Günni