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.
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}
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.
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}