Cadena C ++ a doble conversión

Cadena C ++ a doble conversión
Considere la siguiente cadena literal:
"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?

  • Cadena a entero
  • Cadena al entero largo
  • Cadena para flotar
  • cadena para duplicar
  • Cadena para largo

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
  • Cadena a larga conversión entera
  • Cadena a una conversión de enteros largos sin firmar
  • Cadena a una conversión de enteros largos largos sin firmar
  • Conversión de cadena para flotar
  • Cadena a doble conversión
  • Cadena a una doble conversión larga
  • Sintaxis completa
  • Whitepace
  • Conclusión

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 ().