Decodierungs-Programm < Praxis < Informatik < Vorhilfe
|
Aufgabe | Es ist ein char-Array gefüllt mit Zeichen gegeben, welche aber erst Sinn ergeben wenn man von der Ascii-Codierung jedes Zeichens den Wert 1 abzieht. Aufgabe ist es, ein Programm zu schreiben welches die Zeichen decodiert. |
Hallo!
Ich muss sagen, dass mich das Programm echt überfordert und wäre euch um einige kleinere Tipps sehr dankbar!!
Ich habe im Internet C++ Programme gefunden welche Zeichen in ascii-Code und umgekehrt übersetzen. Allerdings habe ich überhaupt keine Ahnung ob sowas mit C(Das ich verwenden muss) überhaupt realisierbar ist und was die ganzen Funktionen zu bedeuten haben. Obwohl ich nachgeschaut habe, finde ich nur Infos über atoi.
#include <iostream>
using namespace std;
int main()
{
string input;
getline(cin, input);
string temp;
for(int i=0; i<input.length(); i++)
{
if(input.at(i)==' ')
{
cout<<char(atoi(temp.c_str()));
temp="";
continue;
}
temp+=input.at(i);
}
getchar();
return 0;
}
#include <iostream>
using namespace std;
int main()
{
string input;
getline(cin, input);
for(int i=0; i<input.length(); i++)
{
cout<<int(input.at(i))<<" ";
}
return 0;
}
Kann mir bitte jemand sagen wie man das elementarer in C machen könnte bzw. was die Codes bedeuten?
Vielen Dank!
Angelika
Edit: Jetzt hätte ich noch eine Möglichkeit gefunden aber es läuft nicht. Warum?
#include <stdio.h>
int main(){
char zeichen= 'a' ;
int ascii =int(zeichen);
zeichen = char(zeichen+2);
printf("%i", zeichen);
getchar();
return 0;
}
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:42 Di 17.11.2009 | Autor: | pi-roland |
Hallo,
leider kann ich es zur Zeit nicht überprüfen, aber kennst du den printf-Befehl?
for (i=0;i<arraygroesze;i++)
printf("%c", codearray[i]);
Wie gesagt, ich weiß es nicht genau, aber in so einem Array sind die Buchstaben ja als Ascii-Code gespeichert. Kannst als vorher einfach 1 abziehen...
Viel Erfolg,
Roland.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:54 Di 17.11.2009 | Autor: | Rene |
Moin, Moin!
> Edit: Jetzt hätte ich noch eine Möglichkeit gefunden aber
> es läuft nicht. Warum?
>
> #include <stdio.h>
>
> int main(){
>
> char zeichen= 'a' ;
> int ascii =int(zeichen);
int ist keine Funktion. Wenn du casten musst dann (int) zeichen;
> zeichen = char(zeichen+2);
char ist ebenfalls keine Funktion: (char) (zeichen+2);
Hier hast du übrigens deine Lösung schon. Wahrscheinlich wolltest du hier eher (char) (ascii+2); schreiben. Sonst würde das vorherigen casten keinen sinn machen. Aber wie du siehst, funktioniert es auch so.
>
> printf("%i", zeichen);
Ich denke doch mal, das du hier das ASCII zeichen ausgeben willst. Dann musst du aber printf("%c", zeichen); schreiben.
> getchar();
>
> return 0;
> }
>
kurz gesagt: deine Lösung kannst du einfach schreiben als printf('%c',zeichen+2);
MFG
|
|
|
|