Conversión numérica y de cadenas C ++

Uno, basado en el estándar C ++ 11

  Archivo de encabezado: #include <string>

  función:

  1.1 Valor a cadena

  to_string (val): otros tipos se pueden convertir a cadena.

  1.2 valor de conversión de cadena

  stoi (s, p, b): cadena a int

  stol (s, p, b): cadena a larga

  stod (s, p, b) : cadena 转 doble

  stof (s, p, b): cuerda para flotar

  stold (s, p, b) : cadena 转 largo dluble

  stoul (s, p, b), stoll (s, p, b), stoull (s, p, b) 等。

  Observaciones: devuelve el valor de la subcadena inicial de s (una cadena que representa el contenido de un número entero); b representa la base utilizada para la conversión, y el valor predeterminado es 10 (que representa decimal); p es un puntero a size_t, utilizado para almacenar el primer valor no El subíndice de un carácter numérico, p es 0 por defecto, es decir, la función no devuelve el subíndice.

Copiar codigo

1 vacío testTypeConvert () 
 2 { 
 3 // int -> string 
 4 int i = 5; 
 5 cadena s = to_string (i); 
 6 cout << s << endl; 
 7 // doble -> cadena 
 8 doble d = 3,14; 
 9 cout << to_string (d) << endl; 
10 // largo -> cadena 
11 largo l = 123234567; 
12 cout << to_string (l) << endl; 
13 // char -> cadena 
14 char c = 'a'; 
15 cout << to_string (c) << endl; // 自动 转换 成 int 类型 的 参数
16 // char -> string 
17 string cStr; cStr + = c; 
18 cout << cStr << endl; 
19   
20   
21 s = "123,257";
24 // cadena -> larga 
25 cout << stol (s) << endl; 
26 // cadena -> float 
27 cout << stof (s) << endl; 
28 // cadena -> doubel 
29 cout << stod (s) << endl; 
30}

Copiar codigo

En segundo lugar, la versión anterior a C ++ 11

  El estándar C ++ 11 no proporcionó un método correspondiente para llamar antes, por lo que debe escribir el método de conversión usted mismo. El código es el siguiente:

  Para convertir de otros tipos a cadenas , defina un método de una clase de plantilla.

  Convierta de cadena a otros tipos y defina múltiples funciones sobrecargadas.

Copiar codigo

1 #include <strstream> 
 2 template <class T> 
 3 string convertToString (const T val) 
 4 { 
 5 string s; 
 6 std :: strstream ss; 
 7 ss << val; 
 8 ss >> s; 
 9 return s; 
10} 
11   
12   
13 int convertStringToInt (cadena constante & s) 
14 { 
15 int val; 
16 std :: strstream ss; 
17 ss << s; 
18 ss >> val; 
19 return val; 
20} 
21   
22 double convertStringToDouble (cadena constante & s) 
23 { 
24 double val; 
25 std :: strstream ss; 
26 ss << s; 
27 ss >> val;
28 return val;
30   
31 long convertStringToLong (cadena constante & s) 
32 { 
33 long val; 
34 std :: strstream ss; 
35 ss << s; 
36 ss >> val; 
37 return val; 
38} 
39   
40 void testConvert () 
41 { 
42 // convertir otro tipo a cadena 
43 cout << "convertir otro tipo a cadena:" << endl; 
44 cadena s = convertToString (44.5); 
45 cout << s << endl; 
46 int ii = 125; 
47 cout << convertToString (ii) << endl; 
48 doble dd = 3,1415926; 
49 cout << convertToString (dd) << endl;
52 cout << "convertir de cadena a otro tipo:" << endl; 
53 int i = convertStringToInt ("12,5"); 
54 cout << i << endl;
55 double d = convertStringToDouble ("12.5"); 
56 cout << d << endl; 
57 long l = convertStringToLong ("1234567"); 
58 cout << l << endl; 
59}

Copiar codigo

 

Supongo que te gusta

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