char zu char* konvertieren und einen intenger aus char machen
-
Ich mühe mich schon seit geraumer Zeit einzelne Elemente eines char* zu ersetzen, ich habe es z.B. schon so versucht:
char* Temp = "Hallo"; char Temp2[10]= "Welt"; *(Temp+2) = Temp2[2];
Das klappt aber leider nicht. Außerdem versuche ich ebenfalls aus einem char einen int typ zu machen.
char* Temp = "4567"; int Temp3 = 0; Temp3 = atoi(Temp); // funktioniert Temp3 = atoi(Temp[2]); // funktioniert nicht
Wie kann man dieses Problem lösen?
-
Also erstmal zu
char* Temp = "Hallo";
char Temp2[10]= "Welt";
*(Temp+2) = Temp2[2];Das funktioniert bei mir auch nicht, aber man kann es ganz einfach umgehen:
char Temp[] = "Hallo"; char Temp2[10]= "Welt"; Temp[2] = Temp2[1];
Zu
char* Temp = "4567";
int Temp3 = 0;
Temp3 = atoi(Temp[2]); // funktioniert nichtkann man nur sagen, dass das ja gar nicht funktionieren kann, weil man eine normale int Variable ja nicht wie ein Array indizieren kann. Such im FOrum einfach mal mit der Suchfunktion nach "int zu char" oder so, da findest du schon was.
Felix
EDIT:
Hier findest du ein paar Methoden zum Umweandeln von int nach String (oder char*) http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=IntToString#Answ
-
Hi,
Problem ist eigentlich ganz einfach. Ob Du nun schreibst
char *temp;
oder
char temp[];
ist Jacke wie Büchs. Es ist das gleiche.
Dann musst Du sehen, was Du da machst. Du hast einen Zeiger auf ein char. Diesen Zeiger kannst Du ändern, entweder über den Index, oder über den Wert des Zeigers direkt.
So ist z.B.
temp[3]='A';
das gleiche, wie
*(temp+3)='A';Über die Indexierung ist es natürlich am einfachsten. Was Du da erhälst, ist natürlich ein char, weil der Zeiger für ein char definiert wurde. Wenn Du nun was ersetzen willst, schreib einfach:
temp[3]=temp2[6];
ich mache auch sehr gerne:
strEingabe[LEN]='\0'; Um einen String mit Null zu terminieren.Bei Deinem letzten Beispiel machst Du den Fehler, dass to an atoi ein char übergibst, es aber einen Zeiger erwartet. Eine Möglichkeit ist z.B:
int iZahl=atoi( &temp3[5] );
oder
int iZahl=atoi( temp3+5 );Hoffe geholfen zu haben.
Gruss TB