c++ - conversion - string to int c#
¿Cómo se convierte una cadena de C++ a un int? (8)
He usado algo como lo siguiente en código C ++ antes:
#include <sstream>
int main()
{
char* str = "1234";
std::stringstream s_str( str );
int i;
s_str >> i;
}
Posible duplicado:
Cómo analizar una cadena a un int en C ++?
¿Cómo se convierte una cadena de C ++ a un int?
Supongamos que espera que la cadena tenga números reales ("1", "345", "38944", por ejemplo).
Además, asumamos que no tiene impulso, y realmente quiere hacerlo de la manera C ++, no la vieja forma de C.
Permítanme agregar mi voto para boost :: lexical_cast
#include <boost/lexical_cast.hpp>
int val = boost::lexical_cast<int>(strval) ;
bad_lexical_cast
en error.
Preguntas frecuentes sobre C ++ Lite
[39.2] ¿Cómo convierto un std :: string a un número?
https://isocpp.org/wiki/faq/misc-technical-issues#convert-string-to-num
Tal vez estoy malinterpretando la pregunta, ¿por qué exactamente no quieres usar atoi ? No veo el punto de reinventar la rueda.
¿Me estoy perdiendo el punto aquí?
Use atoi
Use las transmisiones en C ++.
std::string plop("123");
std::stringstream str(plop);
int x;
str >> x;
/* Lets not forget to error checking */
if (!str)
{
// The conversion failed.
// Need to do something here.
// Maybe throw an exception
}
PD. Este principio básico es cómo funciona la biblioteca de impulso lexical_cast<>
.
Mi método favorito es el impulso lexical_cast<>
#include <boost/lexical_cast.hpp>
int x = boost::lexical_cast<int>("123");
Proporciona un método para convertir entre una cadena y formatos numéricos y viceversa. Debajo, utiliza una secuencia de cadenas para que todo lo que se pueda agrupar en una secuencia y luego desasignar de una secuencia (Eche un vistazo a los operadores >> y <<).
en "stdapi.h"
StrToInt
Esta función te dice el resultado y cuántos personajes participaron en la conversión.
#include <sstream>
// st is input string
int result;
stringstream(st) >> result;