Conversión entre números y tipos de cadenas de C ++

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 ++

Supongo que te gusta

Origin blog.csdn.net/digitalkee/article/details/108237428
Recomendado
Clasificación