string to char
-
Moin kann mir wer erklären wie man Daten aus einem char Array in einen string kriegen kann ?
Hier ist mein Ansatz aber das funktionierte nicht

char zahlen[10];
string z;
z = zahlen[1];
cout<<z;
-
Mit dem Konstruktor von
std::string. Schau sonst mal bei www.cplusplus.com vorbei...
-
string z (&zahlen[0]);aber zahlen klingt nich so, als ob das die lösung ist, die du suchst...
bb
-
oops sry jetzt hab ich was falsches gefragt

Also bei dem Programm was ich im moment mache wird ein Text aus einer Datei ausgelesen ( c:\\test.txt ).
Nun will ich mit FileExists überprüfen ob diese Datei Existiert.
#include <iostream> #include <vcl> using namespace std; int main(int argc, char* argv[]) { string text[1] = {"c:\\test.txt"}; char *char_txt; char_txt = text[1]; // <--- funktioniert nicht :( if( FileExists( char_txt) ) { ShowMessage("Datei existieret"); } system("PAUSE"); }
-
weil in text[1] nichts drin ist, sondern in text[0]
edit:
und wie ich sehe, willst du dem char* den string zu weisen! dazu musst erst mal speicher allokieren - mit malloc, calloc etc.!
string foo[1] = {"TEST"}; const char* bar = foo[0].c_str(); char* bla = (char*) malloc(foo[0].length()+1); strcpy(bla,foo[0].c_str()); cout << bar << bla <<endl; free(bla); return 0;
-
Ok ty.
Ich werds mir morgen mal genauer anschauen aber jetzt is erst mal Feierabend ^^
-
vergiss das ma ganz schnell wieder...
#include <string> #include <vcl> using namespace std; int main(int argc, char* argv[]) { string dateiname = "c:/test.txt"; if( FileExists(dateiname.c_str()) ) { ShowMessage("Datei existieret"); } system("PAUSE"); //ist auch bäh.. siehe dazu consolen faq }bb
PS: ohne dir zu nahe treten zu wollen, aber kauf dir ma nen ordentliches C++ buch...
-
ich habe ihm nur den tipp gegeben, wie er aus einem string ein char macht

-
sheddy schrieb:
ich habe ihm nur den tipp gegeben, wie er aus einem string ein char macht

Du hast es sicher gut gemeint, aber wenn er im C++-Forum postet, will er wahrscheinlich eher eine C++-Lösung. Und so zeigen wir ihm eine.

-
Nexus schrieb:
sheddy schrieb:
ich habe ihm nur den tipp gegeben, wie er aus einem string ein char macht

Du hast es sicher gut gemeint, aber wenn er im C++-Forum postet, will er wahrscheinlich eher eine C++-Lösung. Und so zeigen wir ihm eine.

Nebst dem, dass sheddy unnötig zusätzlichen Speicher reserviert, obwohl es gar nicht nötig ist, für das Beispiel von blup.
Grüssli
-
es sind doch nur 2 verschiedene möglichkeiten...vielleicht etwas ungünstig gepostet

-
Ein string ist ein array von char mit abschliessendem Nullzeichen (ANSI-C). Mit der Zuweisung z=string[i] bekomme ich das Zeichen an der i-ten Stelle, beginnend bei Null. Ich verstehe das Problem nicht! Auch wer mit C++ programmiert sollte die grundlegenden Dinge von ANSI-C im Schlaf beherrschen.
-
sheddy schrieb:
es sind doch nur 2 verschiedene möglichkeiten...vielleicht etwas ungünstig gepostet

Ja, aber wozu die zweite? Wozu free und malloc, statt new und delete? Wozu überhaupt Speicher anfordern und eine Kopie durchführen? Du kommst auch so an den Speicher von
std::string, du hast sogar "Random Access Iterators". Wieso also so eine seltsame Kopie? Und auch wenn man an eine C Funktion ein schreibender Zugriff geben möchte, dann macht man dies wenn schon überstd::vector.@berniebutt,
Wie bitte? Was hat das mit dem Thema zu tun? Oder worauf beziehst du dich?Grüssli