Konvertierung zwischen C ++ - Zeichenfolgentypen und Zahlen
Nachdruck: http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
1. Konvertierung zwischen Zeichenfolgenummern
String --- Zeichenarray
(1) string -> char *
string str ("OK");
char * p = str.c_str ();
Zeichenarray --- Zeichenfolge
(2) char * -> Zeichenfolge
char * p = "OK";
Zeichenfolge str (p);
Zeichenarray --- CString
(3) char * -> CString
char * p = "OK";
CString m_Str (p);
// oder
CString m_Str;
m_Str.Format ("% s", p);
CString --- Zeichenarray
(4) CString -> char *
CString str ("OK");
char * p = str.GetBuffer (0);
...
str.ReleaseBuffer ();
(5) string -> CString
CString.Format ("% s", string.c_str ());
(6) CString -> string
string s (CString.GetBuffer (0));
Stellen Sie sicher, dass ReleaseBuffer nach GetBuffer () (), andernfalls wird der vom Puffer belegte Speicherplatz nicht freigegeben und das CString-Objekt kann nicht dynamisch wachsen.
(7) double / float-> CString
double data;
CString.Format ("%. 2f", data); //
Behalte 2 Dezimalstellen (8) CString-> double
CString s = "123.12";
double d = atof ( s);
(9) string-> double
double d = atof (s.c_str ());
2. Nummer zum String: Verwenden Sie den
Befehl sprintf () , um die Formatierung zu formatieren. Die Hauptfunktion besteht darin, formatierte Daten zu schreiben In einer Zeichenfolge.
Funktionsprototyp
int sprintf (char * buffer, const char * format, [argument]…);
Parameterliste
buffer: char pointer, der auf den Puffer der zu schreibenden Zeichenfolge zeigt.
Format: Formatzeichenfolge.
[Argument] ...: Optionale Parameter, bei denen es sich um beliebige Datentypen handeln kann.
Rückgabewert
Stringlänge (strlen)
char str [10];
int a = 1234321;
sprintf (str, "% d", a);
--------------------
char str [10];
double a = 123,321;
Sprintf (str, "%. 3lf", a);
--------------------
char str [10];
int a = 175;
Sprintf ( str, "% x", a); // 10 hexadezimal wird in hexadezimal konvertiert, wenn der ausgegebene Großbuchstabe sprintf ist (str, "% X", a)
------------ --------
char * itoa (int value, char * string, int radix);
kann auch Zahlen in Strings konvertieren, aber die Funktion itoa () ist plattformabhängig (nicht im Standard) Es wird nicht empfohlen, diese Funktion hier zu verwenden.
3. Konvertieren Sie eine Zeichenfolge in eine Zahl: Verwenden Sie die Funktion sscanf ()
, um Daten aus einer Zeichenfolge zu lesen, die dem angegebenen Format entsprechen.
str (string1); int i; stream1 >> i;
cout << i << endl; // zeigt 25 an
Code zu schreiben ist eine Kunst, besser als Mona Lisas Lächeln.
Kategorie: C ++ - Grundkonzepte