Zeichen(Zahlen) in Wörter umwandeln und umgekehrt

halli hallo zusammen,

ich sitze heute schon den ganzen Tag daran eine Umwandlung von Zahlen in Wörter und umgekehrt hinzubekommen. Bis auf einige kleine Fehler hab ich das auch bereits hinbekommen.
Ich füge hier mal en Code bei. Also ich möchte von „NUll“ bis „Neun“ hochzählen, wenn ich eine Zahl ein gebe soll er mir das Wort also z.B. „Neun“ ausgeben, genauso wenn ich eingebe „Neun“ das er mir „9“ ausgibt. Natürlich ohne die Anführungszeichen. Bitte nicht zu kompliziert Erklären, lieber verständlich und ausführlich. Hier mein Versuch.

int Umwandlung(char Zeichen,char Ziffern)
{
(char(Zeichen[10]))->(char(Ziffern[10]))->*;

*Umwandlung (Zeichen[„Null“]=Ziffern[„Null“]);
Umwandlung (Zeichen[1]=Ziffern[„Eins“]);
Umwandlung (Zeichen[2]=Ziffern[„Zwei“]);
Umwandlung (Zeichen[3]=Ziffern[„Drei“]);
Umwandlung (Zeichen[4]=Ziffern[„Vier“]);
Umwandlung (Zeichen[5]=Ziffern[„Fuenf“]);
Umwandlung (Zeichen[6]=Ziffern[„Sechs“]);
Umwandlung (Zeichen[7]=Ziffern[„Sieben“]);
Umwandlung (Zeichen[8]=Ziffern[„Acht“]);
Umwandlung (Zeichen[9]=Ziffern[„Neun“]);
}

for(;(Ziffern)=‚0‘,(Ziffern)>Eingabe;
cout

Hallo Ropella,

es scheint du sitzt vor einer Hausaufgabe :wink:

a) Formatierung durch das HTML-Tag pre (vor dem code, nachher mit /pre und jeweils )
b) es ist für mich kein zusammenhang im Code erkennbar. Vielleicht gibst Du kurz an, welche C-Konstrukte du bereits kennst, bzw. bei was Du nicht verstanden hast, z.B.
* Strings und String-Pointer
* Funktionen und deren Rückgabewerte

eine einfache typische umwandlung von Ziffer in Text wäre

const char \*NameAusZiffer(int Ziffer)
{
 if( Ziffer == 0) return "Null";
 else if(Ziffer == 1) return "Eins";
 ...
 else if(Ziffer == 9) return "Neun";
 else return "keine Ziffer 0-9"; 
}

eleganter wären ein Switch oder ein Namensarray, aber so ist es auch völlig o.k.

Wenn Du diese Funktion verstehst und aufrufen kannst, oder Fragen dazu hast, helfe ich Dir sicher gerne weiter.

Gruß
achim

P.S.: ‚10‘ ist weder Zeichen noch String, daher der Fehler.
Ziffern sind ‚0‘ bis ‚9‘.
„10“ hingegen wäre als Zuweisung zu einem integer eine besonderheit, die erlaubt aber weitgehend unbekannt und missverständlich ist. (832 auf vielen Rechnern, also vergessen!)

hey danke, für die Antwort, hab mir noch mal de Kopf zerissen und es mal mit nem Switch probiert. Bin nicht so das Programmierass versuch halt mehr als das es bei mir klappt. Weißt du wie das mit dem itoa und atoi funktioniert? Im Internet sthet zwar einiges und auch bei der c++ API aber damit kann ich meistens nichts anfangen, denn soviel verstehe ich davon noch nicht. Mir würde es für den Anfang schon reichen, wenn ich ein Programm hinkriege das, wenn ich Ziffern eingebe 0 bis 12 das, die Zahl in einem Wort ausgibt und mit den Operatoren +,-,*,/ rechnen kann, allerdings ist das schon etwas kompliziert, hab auch schon Hilfe von nem Kollegen in der Schule bekommen, aber es klappt meist mehr schlecht als recht.

lg alex

und hier schick ich dir noch mal den ganzen Code, wie gesagt ist bisl vom Kollegen abgeschaut, hab die umwandlung auch versucht aber viel ahnung hab ich davon noch nicht. Vor allem nicht von Zeigern und Pointern und itoa oder atoi etc.

// Ziffern zusammenzählen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include 
#include 

using namespace std;


int \_tmain(int argc, \_TCHAR\* argv[])
{
 char Eingabe;
 char Zeichen;
 char Ziffern;
 int Umwandlung;
 int i;
 int p;
 char zahl;
 char zahl1;
 char zahl2;
 char (zahl\* p);
 char (zahl1\* p);
 char (zahl2\* p);
 int pointer;
 p=pointer;


 do
 { 
 cout\>Eingabe;

 if (char \*\_itoa(int zahl1, char \*string, int radix));
 ;{
 switch (zahl1 [1])
 {
 case 0:
 cout\>Eingabe;
 cout

Hallo,

das mit dem probieren glaube ich Dir gerne :wink:

hier

if (char \*\_itoa(int zahl1, char \*string, int radix));
 ;{
 switch (zahl1 [1])
 {

* passiert praktisch nichts. die Semikola (Semikolons?) hinter der „if“ Klammer bedeuten : wenn erfüllt, dann Tue … nichts;
* Beide müssen weg, damit die Klammer ausgeführt wird.
* Der Ausdruck des switch ist unsinnig.
* Du hast jede Menge Variablen in Deinem Code, doch keine wird sinnvoll gefüllt (Ausnahme Eingabe, die wird aber nicht verwendet!)
Das zeigt mir (nicht böse sein)
* Der Code ist zu groß, um von Dir verstanden zu werden, fange mit einfachen Funktionen an (Eingabe -> Ausgabe, etwa 10 Zeilen!)
* mache Dich mit Zahlen(Skalare) wie int, char und deren Arrays vertraut
* Strings, Verwendung und Anwendung.

Zu den Funktionen : itoa (Integer TO Ascii) und atoi (umgekehrt) wandeln den die Zahl (z.B. 12) in einen String (z.B. „12“), was 2 völlig unterschiedliche Objekte sind. (nicht wie in anderen Basic oder Scriptsprachen, wo beide automatisch umgewandelt werden, und „quasi“ das gleiche darstellen)

Die Funktionen sind in jeder C-Referenz beschrieben, besorge dir eine online oder gedruckt, falls nciht in Deiner IDE vorhanden.

Nochmal der Rat:

* Fange mit einfachen Programmen an, nur die Variable Eingabe, nur ein Zeichen, nur die Ausgabe des Textes.

* Probiere die einfachen Beispiele, spiele mit Ihnen, verändere dies und das

* schalte alle Warnungen Deines Compilers ein!!!

Gruß
achim

hey wollte dir noch mal für deine Tipps danken. Werde das dann jetzt noch mal so probieren, wie du es beschrieben hast, dann müsste es ja nach einiger Zeit klappen.

lg alex