Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » String in Cstring kopieren Sehr Dringend bitte

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.05.2005, 23:24 Uhr
~Pejtr
Gast


Hallo ich bin noch neuling und muss morgen ein Programm abgeben.
Wie kann ich einen String in ein C-String umwandeln???
also sprich

string a = "ccc";
char b[] = a;
funktioniert aber nicht warum nicht bitte um Hilfe Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.05.2005, 08:37 Uhr
ao

(Operator)


Weil Char-Arrays nicht per Zuweisung kopiert werden können; dafür gibts die Funktion strcpy. Und das Array muss genügend Platz haben, in diesem Fall also mindestens char b[4];
Oder, wenn die Länge erst zur Laufzeit feststeht, dann musst du nicht char b[N], sondern char * b deklarieren und dir den Speicher dynamisch holen: in C mit malloc, in C++ mit new.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.05.2005, 09:04 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


und dann a.c_str() benutzen,
also z.b


C++:
string a = "ccc";
char *c = new char[a.len()+1]; // glaub war len, bin mir aber nicht sicher -.-
strcpy(c,a.c_str());
// ...
delete[] c;


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.05.2005, 11:01 Uhr
doppler




Zitat von FloSoft:
und dann a.c_str() benutzen,
also z.b


C++:
string a = "ccc";
char *c = new char[a.len()+1]; // glaub war len, bin mir aber nicht sicher -.-
strcpy(c,a.c_str());
// ...
delete[] c;




Ich glaube du meinst size(), nicht len().
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.05.2005, 12:35 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oh jo, ist doch fast das selbe, sowas schau ich wenn ichs brauch immer nach, sowas hab ich nicht im kopf ^^
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.05.2005, 17:33 Uhr
~Kenny
Gast


die lösung deines problems, für den fall das der string lang genug ist, ist einfach

string a = "aaa";
char b[3];
strcpy(b ,a);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.05.2005, 19:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


b[3] wäre falsch
b[4] wäre ok 3 a + termination sind 4 chars!

aus dem grund lieber obige methode. da erzeugt er dir das "b" in der richtigen länge
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: