Brauche dringend hilfe.Das Programm muss bis morgen fertig werden

lernen.2007

Erfahrenes Mitglied
Guten Tag Leute,

ich habe ein Problem und zwar ich will ein char als String implementiert, in int umwandeln aber es geht nicht.Ich habe mit atoi(const char*) versucht,aber es kommt die Fehlermeldung.Ich gehe meine Zeichenkette mit eine for schleife durch.Ich würde mich freuen wenn Ihr mir hilft könnt.

Danke
erkan
 
Ich verwende c++:
Hier ist der code ist noch nicht fertig,weil ich ohne Umwandlung nichts mehr weiter machen kann.
#include <iostream>
#include <string>

using namespace std;





void Binaerrechnen(char* Zahl,int AuswahlN)
{


int stringlaenge;
stringlaenge=strlen(Zahl);

int Zahlumwandlung;


char c;
char d;


for(int i=0;i<=stringlaenge;++i)
{

c=*Zahl++;

StrToInt(c);
}


if(AuswahlN==1)
{



}


if(AuswahlN==2)
{



}


if(AuswahlN==3)
{


}

if(AuswahlN==4)
{


}


}






void Ausgabe()
{

int AuswahlVon;
int AuswahlNach;
char* Zahleinlesen;
Zahleinlesen=new char[];

cout<<"Bedienung: Zahl eingeben und Ausgangs- und Ziel-System auswählen."<<endl;
cout<<"ZAHL eingeben:"<<endl;

cin >> Zahleinlesen;

cout<<"VON"<<endl;
cout<<"1.Binaer"<<endl;
cout<<"2.Oktal"<<endl;
cout<<"3.Dezimal"<<endl;
cout<<"4.Hexadezimal"<<endl;

cin >> AuswahlVon;


cout<<"NACH"<<endl;
cout<<"1.Binaer"<<endl;
cout<<"2.Oktal"<<endl;
cout<<"3.Dezimal"<<endl;
cout<<"4.Hexadezimal"<<endl;

cin >> AuswahlNach;


if(AuswahlVon == 1)
{

Binaerrechnen(Zahleinlesen,AuswahlNach);
}





}




int main()
{

Ausgabe();



return 0;


}
 
#include <iostream>
#include <string>

using namespace std;





void Binaerrechnen(char* Zahl,int AuswahlN)
{


int stringlaenge;
stringlaenge=strlen(Zahl);

int Zahlumwandlung;


char c;
char d;


for(int i=0;i<=stringlaenge;++i)
{

c=*Zahl++;

Zahlumwandlung=atoi(c);
}


if(AuswahlN==1)
{



}


if(AuswahlN==2)
{



}


if(AuswahlN==3)
{


}

if(AuswahlN==4)
{


}


}






void Ausgabe()
{

int AuswahlVon;
int AuswahlNach;
char* Zahleinlesen;
Zahleinlesen=new char[];

cout<<"Bedienung: Zahl eingeben und Ausgangs- und Ziel-System auswählen."<<endl;
cout<<"ZAHL eingeben:"<<endl;

cin >> Zahleinlesen;

cout<<"VON"<<endl;
cout<<"1.Binaer"<<endl;
cout<<"2.Oktal"<<endl;
cout<<"3.Dezimal"<<endl;
cout<<"4.Hexadezimal"<<endl;

cin >> AuswahlVon;


cout<<"NACH"<<endl;
cout<<"1.Binaer"<<endl;
cout<<"2.Oktal"<<endl;
cout<<"3.Dezimal"<<endl;
cout<<"4.Hexadezimal"<<endl;

cin >> AuswahlNach;


if(AuswahlVon == 1)
{

Binaerrechnen(Zahleinlesen,AuswahlNach);
}





}




int main()
{

Ausgabe();



return 0;


}
 
moin


Dieser Teil:
Code:
	int stringlaenge;
	stringlaenge=strlen(Zahl);

	int Zahlumwandlung;


	char c;
	char d;


	for(int i=0;i<=stringlaenge;++i)
	{
		c=*Zahl++;

		Zahlumwandlung=atoi(c);
	}
kann komplett weg!

Dafür machst du einfach:
Code:
int Zahlumwandlung = atoi(Zahl);

So einfach ist das.

Und guck dir mal diese Seite an: http://www.tutorials.de/misc.php?do=bbcode#code
dann kannst du deinen Code besser hierein stellen.


mfg
umbrasaxum
 
atoi ist für Strings konzipiert, nicht für einzelne chars. Du kannst aber bei einzelnen Zeichen einfach '0' abziehen. Das geht allerdings davon aus, dass tatsächlich nur Ziffern in dem String stehen:

c=*Zahl++;
int iZahl = c - '0';
 
VIELEN VIELEN DANK Endurion :suspekt:

Ich habe noch ein kleines Problem ich würde mich freuen wenn du mir da auch helfen würdest.Und zwar will ich in String(Zahl) nach einem bestimmte Zeichen suchen und will dass er als Rückgabewert die Stellenzahl bzw. Position dieser Zeichen zurückliefert.Gibt es eigentlich ein solches vordefiniertes bzw. gefertigtes funktion in c++ bibliothek.

Noch einmal danke und hast mich gerettet!Ich schulde dir ein schein.
 
Also ich benutze dafür C++-Strings . Wenn du solche hast, kannst du ganz einfach mit der Methode find() bestimmte Zeichen finden und deren Position zurückliefern lassen. Mit normalen Chars, könntest du die string.h einbinden und strchar() benutzen.
 
Zuletzt bearbeitet:
Hallo,


wenn ich mache:

string zahl1;
int k;
k=zahl1.find(",", 0 );

DANN FUNKTIONIERT
ABER SO NICHT.
int k;
k=Zahl.find(",", 0 );
fehlermeldung:
error C2228: Der linke Teil von '.find' muss eine Klasse/Struktur/Union sein

Vielleicht weil es nur für string und nicht wie oben definiert für char *zahl;
 
Die Methode find gehört zur String-Klasse und funktioniert folglich auch nur damit. Mit string zahl1; machst du ja zahl1 zu einer Instanz der Klasse String. Es steht nirgendwo, dass sie mit char* funktioniert, du kannst nur lediglich einen Char als Option eingeben,..
 
Zurück