1. Conversión entre entero y coma flotante
(1) Conversión obligatoria común, pero hay problemas
doble d_Temp; int i_Temp = 323 ; d_Temp = ( doble ) i_Temp;
(2) Usar conversión forzada estándar
Por el momento, static_cast <tipo> (valor convertido); hay cuatro tipos obligatorios estándar, que no son muy específicos.
doble d_Temp; int i_Temp = 323 ; d_Temp = static_cast < double > (i_Temp);
2. La conversión entre cadenas y números, la más poderosa es atoi
(1) Use la función sprintf_s para convertir el número en una cadena
int i_temp = 2020 ; std :: string s_temp; char c_temp [ 20 ]; sprintf_s (c_temp, " % d " , i_temp); s_temp = c_temp; std :: cout << s_temp << std :: endl;
(2) Use la función sscanf para convertir la cadena a un número
doble i_temp; char c_temp [ 20 ] = " 15.234 " ; sscanf_s (c_temp, " % lf " , & i_temp); std :: cout << i_temp << std :: endl;
(3) la función atoi, atof, atol, atoll (estándar C ++ 11) convierte la cadena a int, double, long, long long type
std :: string s_temp; char c_temp [ 20 ] = " 1234 " ; int i_temp = atoi (c_temp); s_temp = c_temp;
std :: string s_temp; char c_temp [ 20 ] = " 1234.1234 " ; doble i_temp = atof (c_temp); s_temp = c_temp;
(4) las funciones strtol, strtod , strtof , strtoll, strtold convierten cadenas en tipos int, double, float, long long, long double
std :: string s_temp; char c_temp [ 20 ] = " 4.1234 " ; doble a = strtod (c_temp, nullptr); // El siguiente parámetro es una referencia a la cadena si se encuentra una cadena
(5) Use to_string para convertir números en cadenas
doble d_temp = 1.567 ; std :: string s_temp = to_string (d_temp);
3. Conversión entre cadenas y caracteres.
(1) Convertir char * de cadena con c_str
string s_temp = " esto es una cadena " ; const char * c_temp; c_temp = s_temp.c_str ();
(2) La función de agregar se puede usar para agregar caracteres uno por uno
string s_temp; char c_temp [ 20 ]; c_temp [ 0 ] = ' H ' ; c_temp [ 1 ] = ' L ' ; c_temp [ 2 ] = ' L ' ; c_temp [ 3 ] = ' O ' ; c_temp [ 4 ] = ' \ 0 ' ; s_temp = c_temp;