"Tengo algunos libros por valor de $ 14.25 y otros valen $ 34.87."
Ahora las subcontratos "14.25 "y" 34.87 "son literales de cadena y no números. Si tienes el código,
"14.25 " +" 34.87 "
En C ++, no terminarás con 49.12. De hecho, el compilador debe emitir un mensaje de error. Para tener el resultado, 49.12, "14.25 "tiene que convertirse en un tipo de doble o flotante, y" 34.87 ”debe convertirse en un tipo de doble o flotante.
El título de este tutorial es "cadena C ++ a doble conversión". Es su objetivo de convertir la cadena para duplicar; o hacer todo lo siguiente, que están relacionados?
Este tutorial explica todas estas conversiones y más. Lo que se está convirtiendo es un objeto en forma de cadena. La clase de cadena C ++ tiene funciones para hacer estas. Para usar estas funciones, la clase de cadena debe incluirse en el programa.
Contenido del artículo
Cadena a conversión entera
El siguiente programa hace esto:
"20" a int + "30" a int = 50 como int
La sintaxis de conversión simplificada para usar es:
Stoi (STR)
donde stoi significa cadena a entero. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultado = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
Cadena a larga conversión entera
El siguiente programa hace esto:
"20" a largo int + "30" a largo int = 50 tan largo int
La sintaxis de conversión simplificada para usar es:
STOL (STR)
Donde Stol significa entero de cuerda a largo. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
largo int num1 = stol (str1);
largo int num2 = stol (str2);
Resultado long int = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
Cadena a una conversión de enteros largos sin firmar
El siguiente programa hace esto:
"20" a unsigned Long int + "30" a unsigned Long int = 50 como unsigned Long int
La sintaxis de conversión simplificada para usar es:
Stoul (str)
Donde Stoul significa String-to Unsigned-Long-Ingger. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
Unsigned Long int num1 = stoul (str1);
Unsigned long int num2 = stoul (str2);
unsigned long int resultado = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
Cadena a una conversión de enteros largos largos sin firmar
El siguiente programa hace esto:
"20" a sin firmar largo, largo int + "30" a sin firmar largo int = 50 como sin firmar largo, largo int
La sintaxis de conversión simplificada para usar es:
STOULL (STR)
Donde Stoul significa String-to Unsigned Long-Integer. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "20";
char str2 [] = "30";
Unsigned Long Long int num1 = StoUll (str1);
Unsigned Long Long int num2 = stoUll (str2);
sin firmar larga larga resultado int = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
Conversión de cadena para flotar
El siguiente programa hace esto:
"14.25 "para flotar +" 34.87 "para flotar = 49.12 como flotador
La sintaxis de conversión simplificada para usar es:
STOF (STR)
donde stof significa cadena a piso. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
flotante num1 = stof (str1);
flotante num2 = stof (str2);
Resultado flotante = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
Cadena a doble conversión
El siguiente programa hace esto:
"14.25 "a doble +" 34.87 "para duplicar = 49.12 como doble
La sintaxis de conversión simplificada para usar es:
Stod (STR)
donde stof significa cadena a piso. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
doble num1 = stod (str1);
doble num2 = stod (str2);
resultado doble = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
Cadena a una doble conversión larga
El siguiente programa hace esto:
"14.25 "a largo Doble +" 34.87 "a largo Doble = 49.12 como doble
La sintaxis de conversión simplificada para usar es:
Pield (str)
donde stof significa cadena a piso. El programa es:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "14.25 ";
char str2 [] = "34.87 ";
Doble largo num1 = Stild (str1);
Doble largo num2 = stild (str2);
Resultado doble largo = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
Sintaxis completa
Cadena a entero
La sintaxis completa para convertir una cadena en int es:
int stoi (const string & str, size_t* idx = nullPtr, int base = 10)
El segundo argumento puede permitirse como nullPTR. El valor predeterminado para el tercer argumento es la base 10. Se puede cambiar a otra base, como 16.
El siguiente programa hace esto:
"A" TO INT-BASE-16 + "B" a INT-BASE-16 = 21 como int-Base-10
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "A";
char str2 [] = "b";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int resultado = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 21.
Las otras sintaxis se explican de manera similar.
Whitepace
Los espacios en blanco son ", '\ n', '\ r', '\ f', '\ t', '\ V'. Uno o más de estos pueden estar al frente o después de un número en una cadena. Durante la conversión, se eliminan los espacios blancos.
El siguiente programa ilustra cómo se eliminan los espacios en la conversión de la cadena a int:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
int num1 = stoi (str1);
int num2 = stoi (str2);
int resultado = num1 + num2;
cout << result << endl;
regresar 0;
El siguiente programa ilustra cómo se eliminan los espacios blancos en la conversión de la cadena a la larga int:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
largo int num1 = stol (str1);
largo int num2 = stol (str2);
Resultado long int = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
El siguiente programa ilustra cómo se eliminan los espacios blancos en la conversión de la cadena a sin firmar Long int:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
Unsigned Long int num1 = stoul (str1);
Unsigned long int num2 = stoul (str2);
unsigned long int resultado = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
El siguiente programa ilustra cómo se eliminan los espacios blancos en la conversión de la cadena a sin firmar largo int:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 20 \ n";
char str2 [] = "\ t 30 \ t";
Unsigned Long Long int num1 = StoUll (str1);
Unsigned Long Long int num2 = stoUll (str2);
sin firmar larga larga resultado int = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 50.
El siguiente programa ilustra cómo se eliminan los espacios en la conversión de la cadena a la flotación:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
flotante num1 = stof (str1);
flotante num2 = stof (str2);
Resultado flotante = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
El siguiente programa ilustra cómo se eliminan los espacios en la conversión de la cadena a doble:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
doble num1 = stod (str1);
doble num2 = stod (str2);
resultado doble = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
El siguiente programa ilustra cómo se eliminan los espacios en la conversión de la cadena a doble:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n 14.25 \ n ";
char str2 [] = "\ t 34.87 \ t ";
Doble largo num1 = Stild (str1);
Doble largo num2 = stild (str2);
Resultado doble largo = num1 + num2;
cout << result << endl;
regresar 0;
La salida es:
49.12
El siguiente programa ilustra cómo se eliminan los espacios en la conversión de la cadena a int, en la base 16:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str1 [] = "\ n a \ n";
char str2 [] = "\ t b \ t";
int num1 = stoi (str1, nullptr, 16);
int num2 = stoi (str2, nullptr, 16);
int resultado = num1 + num2;
cout << result << endl;
regresar 0;
La salida es 21.
Conclusión
C ++ tiene funciones para convertir cadenas a números. En la conversión, se ignoran los espacios blancos. Si la cadena tiene un carácter que no es un dígito o un espacio en blanco, el resultado no es confiable. Las funciones están en la biblioteca de cadenas y son: stoi (), stol (), stoul (), stoll (), stoull (), stof (), stod () y stild ().