Cadena a las funciones de valor numérico
Comentarios
Cada función de la familia de strtod convierte una cadena terminada en null a un valor numérico.Las funciones disponibles se muestran en la tabla siguiente.
Función |
Descripción |
---|---|
strtod |
Cadena de convierte el valor de doble precisión de punto flotante |
strtol |
Cadena convert el entero largo |
strtoul |
Cadena convert el entero unsigned long |
_strtoi64 |
Cadena de convertir en un entero de 64 bits de __int64 |
_strtoui64 |
Cadena de convertir en un entero de 64 bits sin signo de __int64 |
wcstod, wcstol, wcstoul, y _wcstoi64 son versiones de caracteres anchos de strtod, de strtol, de strtoul, y de _strtoi64, respectivamente.El argumento de cadena a cada una de estas funciones de carácter ancho es una cadena de caracteres; cada función se comporta idénticamente a su equivalente de solo-byte-carácter de otra manera.
la función de strtod toma dos argumentos: el primero es la cadena de entrada, y la segunda un puntero al carácter que finaliza el proceso de conversión.strtol, strtoul, _strtoi64 y _strtoui64 tienen un tercer argumento como base de número el uso en el proceso de conversión.
La cadena de entrada es una secuencia de caracteres que se pueden interpretar como valor numérico del tipo especificado.Cada función finaliza la lectura de la cadena del primer carácter que no puede reconocer como parte de un número.Puede ser el carácter null de terminación.Para strtol, strtoul, _strtoi64, y _strtoui64, este carácter de terminación también puede ser el primer carácter numérico es mayor o igual que la base de número proporcionada por.
Si el puntero tras un carácter de la FIN-de-conversión no se establece en NULL en tiempo de llamada, un puntero al carácter que se detuvo el análisis se almacenará allí en su lugar.Si ninguna conversión se puede realizar (no se encontraron dígitos válidos o base no válida se especificó), el valor del puntero de la cadena se almacena en esa dirección.
strtod cuenta con una cadena con el formato siguiente:
[espacio en blanco] [sign] [digits] [**.**digits] [{d | D | e | E} [sign]digits]
Un espacio en blanco puede ser el espacio o caracteres de tabulación, se omiten que; el signo es más (+) o menos (–); y digits es uno o más dígitos decimales.Si ningún dígitos aparecen antes del carácter de base, al menos uno debe aparecer después del carácter de base.Los dígitos decimales pueden ir seguidos por un exponente, formada por una letra preliminar (d, d, E, o E) y un entero opcionalmente firmado.Si no aparece una parte del exponente ni un carácter de base, un carácter de base se supone para seguir el último dígito de la cadena.El primer carácter que no encaja en este formulario detiene el análisis.
strtol, strtoul, _strtoi64, y las funciones de _strtoui64 esperan una cadena con el formato siguiente:
[espacio en blanco] [{+ | –}] [0 [{ x | x }]] [digits]
Si el argumento base está entre 2 y 36, se utiliza como base del número.Si es 0, los caracteres iniciales que hace referencia el puntero de la FIN-de-conversión se utilizan para determinar la base.si el primer carácter es 0 y el segundo carácter no es “x” o “X”, la cadena se interpreta como entero octal; si no, se interpreta como un número decimal.si el primer carácter es “0" y el segundo carácter es “x” o “X”, la cadena se interpreta como entero hexadecimal.si el primer carácter es “1" con “9", la cadena se interpreta como entero decimal.Las letras” a la “z” (o “A” a la “z ") se asignan los valores 10 a 35; sólo las letras cuyo asignaban valores son menos que la base se permiten.strtoul y _strtoui64 permiten especificar más (+) o menos prefijo de signo (de**–**); un signo menos principal indica que el valor devuelto se negado.
El valor de salida se ve afectado por el valor de la categoría de LC_NUMERIC de configuración regional; vea setlocale para obtener más información.Las versiones de estas funciones sin el sufijo de _l utilizan la configuración regional actual para este comportamiento configuración; dependientes las versiones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en su lugar.
Cuando funciona el valor devuelto por estos provocaría un desbordamiento o un subdesbordamiento, o cuando la conversión no son valores de posible caso, especial cambian como se muestra a continuación:
Función |
Condition |
valor devuelto |
---|---|---|
strtod |
Desbordamiento |
+/- HUGE_VAL |
strtod |
subdesbordamiento o ninguna conversión |
0 |
strtol |
+ Desbordamiento |
LONG_MAX |
strtol |
- Desbordamiento |
LONG_MIN |
strtol |
subdesbordamiento o ninguna conversión |
0 |
_strtoi64 |
+ Desbordamiento |
_I64_MAX |
_strtoi64 |
- Desbordamiento |
_I64_MIN |
_strtoi64 |
ninguna conversión |
0 |
_strtoui64 |
Desbordamiento |
_UI64_MAX |
_strtoui64 |
ninguna conversión |
0 |
_I64_MAX, _I64_MIN, y _UI64_MAX son definidas en LIMITS.H.
wcstod, wcstol, wcstoul, _wcstoi64, y _wcstoui64 son versiones de caracteres anchos de strtod, de strtol, de strtoul, de _strtoi64, y de _strtoui64, respectivamente; el puntero a un argumento de la FIN-de-conversión a cada una de estas funciones de carácter ancho es una cadena de caracteres.Si no, cada una de estas funciones de carácter ancho se comporta idénticamente a su equivalente de solo-byte-carácter.
Vea también
Referencia
Interpretación de secuencias de Multibyte- Carácter