Char Feld und integer
-
Hallo zusammen,
ich habe folgendes Problem.
Hab ein char-feld: feld[1] und eine int zahl.
Inhalt dieses Feldes ist: feld[0]=8
feld[1]=4Wie kann ich nun das gesamte Feld in eine Integer-Variable schreiben.
Wenn ich zum Beispiel:zahl=(feld[0]-48) schreibe ist ja nur die 8 drin. Möchte aber die 84 in der Integer-Variablen stehen haben.
Könnt ihr mir helfen?
Vielen Dank und viele Grüße
-
Ich hoffe mal ich habe verstanden was zu willst, meinst du
char feld[] = "84"; int zahl = atoi(feld); printf("%d",zahl);?
-
hab es nun mal mit atoi Funktion versucht, und es wird 0 in die Variable geschrieben!?
Ich glaube schon das du das richtige meinst. Muss ich vielleicht noch eine #include schreiben?Danke...
-
Poste mal deinen code!
-
Das kann nicht sein. atoi arbeitet fehlerfrei, hast du feld so gefüllt wie angegeben?
-
class datum{
private:
char tag[1];
char monat[1];
char jahr[1];
int day,month,year;
int temp;public:
datum(char feld[]){
for(int i=0;i<=1;i++){
tag[i]=feld[i];
}
for(int i=3;i<=4;i++){
monat[i]=feld[i];
}
for(int i=8;i<=9;i++){
jahr[i]=feld[i];
}
}int rueckJahr(){
year=atoi(jahr);
return year;
}
int rueckMonat(){return month;
}
int rueckTag(){return day;
}int pruef2(char feld[]){
}
};
int main()
{
char a[10], b[10], c[10], e[2];cout << "Gib dein Geburtsdatum ein: " << '\t';
gets(c);datum Geburtsdatum(c);
Geburtsdatum.gibFelder();system("PAUSE");
return 0;
}
-
#include <cstdlib>
#include <iostream>
#include <string.h>using namespace std;
class datum{
private:
char tag[1];
char monat[1];
char jahr[1];
int day,month,year;public:
datum(char feld[]){
for(int i=0;i<=1;i++){
tag[i]=feld[i];
}
for(int i=3;i<=4;i++){
monat[i]=feld[i];
}
for(int i=8;i<=9;i++){
jahr[i]=feld[i];
}
}int rueckJahr(){
year=atoi(jahr);
return year;
}
int rueckMonat(){return month;
}
int rueckTag(){return day;
}
};int main(){
char a[10], b[10], c[10], e[2];cout << "Gib dein Geburtsdatum ein: " << '\t';
gets(c);datum Geburtsdatum(c);
cout << Geburtsdatum.rueckJahr();system("PAUSE");
return 0;
}
-
Das wird so nix. Benutze mal den C/C++ Tag für deinen Code.
tag,monat,jahr sind zu gering dimensioniert., also mind.char tag[3], monat[3], jahr[3];und die Zuweisung ist auch falsch,
also z.B.sprintf( tag, "%.2s", feld+0 ); sprintf( monat, "%.2s", feld+2 ); sprintf( jahr, "%.2s", feld+4 );ist aber C und kein C++.
-
Das erste was du geschrieben hast hab ich geändert.
Aber die zweite Änderung versteh ich nicht ganz.
-
sprintf( tag, "%.2s", feld+0 );führt durch:
feld[0]->tag[0]
feld[1]->tag[1]
tag[2]='\0';sprintf( monat, "%.2s", feld+2 );führt durch:
feld[2]->monat[0]
feld[3]->monat[1]
monat[2]='\0';usw.