Konvertierung zwischen C ++ - Zeichenfolgentypen und Zahlen

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

Ich denke du magst

Origin blog.csdn.net/digitalkee/article/details/108237428
Empfohlen
Rangfolge