Red de conocimiento informático - Conocimiento de Internet de las cosas - Conversión de cadena a número entero

Conversión de cadena a número entero

Conversiones de funciones comunes entre cadenas y números enteros, números de punto flotante y enteros sin signo

atof (convierte a números de punto flotante)

Archivo de encabezado #include lt; >

define function double atof (const char *nptr);

Descripción

atof() escanea la cadena nptr, omitiendo los caracteres de espacio anteriores hasta que encuentra un número o un carácter positivo. Comienza la conversión. cuando se encuentra un signo negativo, y luego finaliza cuando se encuentra un no número o el final de la cadena (''), y se devuelve el resultado. La cadena nptr puede contener un signo, un punto decimal o una parte exponente de E(e), como 123,456 o 123e-2.

Valor de retorno Devuelve el número de punto flotante convertido.

Notas adicionales atof() tiene el mismo resultado que usar strtod(nptr, (char**)NULL).

Ejemplo/* Convierte la cadena a y la cadena b en números y agrégalas*/

#stdlib.hgt

main()

{

char *a="-100.23";

char *b="200e-2"

flotar c;

c=atof(a) atof(b);

printf("c=.2f\n ",c);

}

p>

Ejecutar

c=-98.23

//////////////////////// /// ////////////////////////////////////////////

atoi (Convertir cadena a entero)

Archivo de encabezado #includelt; stdlib.hgt;

Definir función int atoi(const char *nptr);

Descripción de la función atoi() escanea la cadena del parámetro nptr, omite los caracteres de espacio anteriores, no inicia la conversión hasta que encuentra un número o un signo y finaliza la conversión cuando encuentra un no número o el final de la cadena ( '') y Devolver resultados.

Valor de retorno Devuelve el número entero convertido.

Notas adicionales atoi() tiene el mismo resultado que usar strtol(nptr, (char**)NULL, 10).

Ejemplo/* Convierte la cadena a y la cadena b en números y agrégalas*/

#stdlib.hgt

mian()

{

char a[]="-100";<

char b[]="456";

int c;

c=atoi(a) atoi(b);

printf(c=d\n",c);

}

Ejecutar

c=356

///////////////////////////// // ////////////////////////////////////////////////

atol (convertir cadena a entero largo)

Archivo de encabezado #includelt;stdlib.hgt;

Definir función long atol(const char *nptr);

p>

Descripción de la función atol() escaneará la cadena nptr del parámetro, omitirá los caracteres de espacio anteriores, hasta que encuentre números o símbolos positivos y negativos para iniciar la conversión, y luego encuentre caracteres que no sean dígitos o ('') al final. de la cadena Finalice la conversión y devuelva el resultado.

El valor de retorno devuelve el entero largo convertido.

Instrucciones adicionales para usar strtol(nptr, (char**)NULL, 10. ). El resultado es el mismo

Ejemplo/*Convierta la cadena a y la cadena b en números y agréguelas*

#includelt;stdlib.hgt;

principal()

{

char a[]="1000000000 ";

char b[]=" 234567890";

largo c;

c=atol(a) atol(b);

printf(" c=d\n",c);

}

Ejecutar

c=1234567890

///////////////////////// // ////////////////////////////////////////

gcvt (convertir número de punto flotante a Convertir a cadena, redondeado)

Funciones relacionadas ecvt, fcvt, sprintf

Archivo de encabezado #stdlib.hgt;

Función definición char *gcvt (double number. size_t ndigits, char *buf);

Descripción de la función gcvt() se utiliza para convertir números de parámetros en cadenas ASCII. Los ndigits del parámetro representan el número de dígitos que se mostrarán. gcvt() se diferencia de ecvt() y fcvt() en que gcvt() convierte cadenas que contienen puntos o signos decimales. Si la conversión es exitosa, la cadena convertida se colocará en el espacio indicado por el puntero buf.

Valor de retorno Devuelve un puntero a la cadena en la dirección del puntero buf.

Ejemplo de instrucciones adicionales #includelt;stdlib.hgt;

main()

{

double a=123.45;

doble b=-1234.56;

char *ptr;

int decpt, signo;

gcvt(a, 5, ptr);

printf("a valor=s\n",ptr);

ptr=gcvt(b,6,ptr);

printf("b valor =s\n",ptr);

}

Ejecutar

a valor=123.45

b valor=-1234.56< / p>

////////////////////// ////////////////////// //// ///////////////////////////

strtod (convertir cadena a flotante)

Archivo de encabezado de tabla #includelt; stdlib.hgt;

Definir función double strtod(const char *nptr, char **endptr

Descripción de la función strtod() escaneará el parámetro nptr cadena y salto Después de pasar el carácter de espacio anterior, la conversión no comenzará hasta que se encuentre un número o un signo, y la conversión no finalizará hasta que aparezca un no número o el final de la cadena (''), y se devolverá el resultado. Si endptr no es NULL, el puntero de carácter en nptr termina con endptr y la cadena encontrada se devuelve incondicionalmente. La cadena del parámetro nptr puede contener un signo, un punto decimal o E(e) que representa la parte del exponente. Por ejemplo, 123.456 o 123e-2.

Valor de retorno Devuelve el número de punto flotante convertido.

Notas adicionales Ver atof().

Ejemplo/* Convierte las cadenas a, byc a números usando 10, 2 y hexadecimal respectivamente*/

#includelt;stdlib.hgt;

mian()

{

char a[]="1000000000 ";

char b[]="1000000000";

char c[]="ffff";

printf("a=d\n", strtod(a, NULL, 10));

printf(" b=d\ n", strtod(b, NULL, 2));

printf ("c=d\n", strtod(c, NULL, 16));

}

Ejecución

a=1000000000

b=512

c=65535

/// //// / ////////////////////////////////////////////////// /////////////////////////////////

strtol (convertir cadena a entero largo)

p>

Funciones relacionadas atof, atoi, atol.strtod, strtoul

Archivo de encabezado #includelt; stdlib.hgt;

Definición de función long int strtol(const char *nptr , char **endptr, int base);

Descripción de la función

strtol() convertirá la cadena nptr del parámetro en un entero largo de acuerdo con la base del parámetro. El rango de la base de parámetros es de 2 a 36, ​​o 0. El parámetro base representa el método base utilizado, como 10 representa la base 10, 16 representa la base 16, etc. Cuando la base es 0, las cadenas se convierten en números enteros. Cuando la base es 0, la conversión se realiza en base 10, pero cuando se encuentran caracteres como "0x", la conversión se realiza en base 16. Al principio, strtol() escanea la cadena del parámetro nptr, omitiendo los caracteres de espacio anteriores, iniciando la conversión hasta que encuentra un número o un signo positivo o negativo, y luego finaliza cuando encuentra un no número o el final de la cadena. ('') Convertir y devolver el resultado. Si el argumento endptr no es NULL, endptr devuelve un puntero al carácter en nptr cuando se encuentra una terminación incondicional.

Valor de retorno Devuelve el entero largo convertido; de lo contrario, devuelve ERANGE y guarda el código de error en errno.

Notas adicionales ERANGE significa que la cadena convertida excede el rango legal.

Ejemplo/* Convierte las cadenas a, byc a números usando 10, 2 y hexadecimal respectivamente*/

#includelt;stdlib.hgt;

main()

{

char a[]="1000000000 ";

char b[]="1000000000";

char c[]="ffff";

printf("a=d\n", strtol(a, NULL, 10));

printf(" b=d\ n", strtol(b, NULL, 2));

printf ("c=d\n", strtol(c, NULL, 16));

}

Ejecución

a=1000000000

b=512

c=65535

/// //// / ////////////////////////////////////////////////// /////

strtoul (convierte cadena en un número entero largo sin signo)

Funciones relacionadas atof, atoi, atol, strtod, strtol

Archivo de encabezado de tabla #includelt; stdlib.hgt;

Definir función unsigned long int strtoul(const char *nptr, char **endptr, int base);

Descripción de la función

strtoul() convierte la cadena nptr del parámetro en un entero largo sin signo según la base del parámetro. El rango de la base de parámetros es de 2 a 36, ​​o 0. El parámetro base representa la base utilizada, por ejemplo, 10 representa la base 10, 16 representa la base 16, etc. Cuando la base es 0, el número se convierte a hexadecimal. Cuando la base es 0, la conversión se realiza en base 10, pero cuando se encuentran caracteres como "0x", la conversión se realiza en hexadecimal. Al principio, strtoul() escaneará la cadena nptr del parámetro, omitirá la cadena de espacios en blanco anterior, iniciará la conversión hasta que encuentre un número o un signo positivo o negativo, y luego finalizará la conversión cuando encuentre un número que no sea un dígito o el final. de la cadena ('') y devuelve el resultado. Si el argumento endptr no es NULL, endptr devuelve el puntero al carácter terminado incondicionalmente en nptr.

Valor de retorno

Devuelve el entero largo convertido; de lo contrario, devuelve ERANGE y guarda el código de error en errno.

Notas adicionales

La cadena de conversión especificada por ERANGE está fuera del rango legal.

Ejemplo

Referencia strtol()

toascii (convierte números enteros a caracteres ASCII legales)

Funciones relacionadas

isascii, toupper, tolower

Archivo de encabezado

#includelt; ctype.hgt;

Definir función

int toascii (int c )

Descripción de la función

toascii() convierte c en un valor de carácter sin signo de 7 bits y borra el octavo bit para convertir el carácter en un carácter ASCII.

Valor de retorno

Devuelve el valor del carácter ASCII convertido correctamente.

Ejemplo

#includelt;stdlib.hgt;

main()

{

int a= 217;

char b;

printf("antes de roasti(): un valor =d(c)\n", a, a);

b=toascii(a);

printf("después de toascii(): un valor =d(c)\n", b, b);

}

ejecutar

antes de toascii(): un valor=217()

después de toascii(): un valor=89(Y)

// //////////////////////////////////

tolower (convertir mayúsculas a minúsculas)

Funciones relacionadas isalpha, toupper

Archivo de encabezado de tabla #includelt; stdlib.hgt;

Definición de función int tolower(int c);

Descripción de la función Si el parámetro c es una letra mayúscula, devuelve la letra minúscula correspondiente.

Valor de retorno Devuelve las letras minúsculas convertidas. Si no se requiere conversión, se devuelve el valor de c.

Ejemplo de instrucciones adicionales/* Convertir letras mayúsculas de la cadena s a letras minúsculas*/

#includelt;ctype.hgt;

main()

{

char s[]="aBcDeFgH12345;!#$";

int i;

printf("antes de bajar () : s\n", s);

for(i=0; Ilt; sizeof(s); i )

s=tolower(s);

printf("después de tolower(): s\n", s);

}

ejecutar

antes de tolower(): aBcDeFgH12345; #$

después de bajar(): abcdefgh12345;! #$

toupper (convierte letras minúsculas en mayúsculas)

Funciones relacionadas isalpha, tolower

Encabezado #includelt; ctype.hgt

Definición de función int toupper(int c);

Descripción de la función Si el parámetro c es una letra minúscula, devuelve la letra mayúscula en el par de letras.

Valor de retorno Devuelve las letras mayúsculas convertidas. Si no se requiere conversión, devuelve el valor del parámetro c.

Ejemplo/* Convertir letras minúsculas en la cadena s a letras mayúsculas*/

#includelt;ctype.hgt;

main()

main()

p>

{

char s[]="aBcDeFgH12345;!#$";

int i;

printf("antes de toupper() : s\n", s

for(i=0; Ilt; sizeof(s); i )

s=toupper(s);

printf("después de toupper(): s\n", s);

}

ejecutar

antes de toupper(): aBcDeFgH12345;! #$

después de toupper(): abcdefgh12345;! #$

// Buena suerte