Conversión entre números y tipos de cadenas de C ++
Reimpreso: http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html
1. Conversión entre números de cadena
Cadena --- Matriz de caracteres
(1) cadena -> char *
string str ("OK");
char * p = str.c_str ();
Matriz de caracteres --- cadena
(2) char * -> cadena
char * p = "OK";
cadena str (p);
Matriz de caracteres --- CString
(3) char * -> CString
char * p = "OK";
CString m_Str (p);
// o
CString m_Str;
m_Str.Format ("% s", p);
CString --- Matriz de caracteres
(4) CString -> char *
CString str ("OK");
char * p = str.GetBuffer (0);
...
str.ReleaseBuffer ();
(5) cadena -> CString
CString.Format ("% s", cadena.c_str ());
(6) CString -> cadena
cadena s (CString.GetBuffer (0));
Asegúrese de ReleaseBuffer después de GetBuffer () (), de lo contrario, el espacio ocupado por el búfer no se libera y el objeto CString no puede crecer dinámicamente.
(7) double / float-> CString
double data;
CString.Format ("%. 2f", data); // Mantener 2 lugares decimales
(8) CString-> double
CString s = "123.12";
double d = atof ( s);
(9) cadena-> doble
doble d = atof (s.c_str ());
2. Número a cadena: use el
comando de formato de cadena de función sprintf () , la función principal es escribir datos formateados En una cuerda.
Prototipo de función
int sprintf (char * buffer, const char * formato, [argumento]…);
lista de parámetros
buffer: puntero char, apuntando al búfer de la cadena que se va a escribir.
formato: cadena de formato.
[argumento] ...: Parámetros opcionales, que pueden ser cualquier tipo de datos.
valor de retorno
Longitud de la cuerda (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 hexadecimal se convierte a hexadecimal, si la letra mayúscula de salida es sprintf (str, "% X", a)
------------ --------
char * itoa (int value, char * string, int radix);
también puede convertir números en cadenas, pero la función itoa () depende de la plataforma (no en el estándar), No se recomienda utilizar esta función aquí.
3. Convierta una cadena en un número: use la función sscanf ()
para leer datos que coincidan con el formato especificado de una cadena.
str (cadena1); int i; stream1 >> i;
cout << i << endl; // muestra 25
Escribir código es un arte, mejor que la sonrisa de Mona Lisa.
Categoría: conceptos básicos de C ++