Espaços nominais
Variantes
Acções

strtoul, strtoull

Da cppreference.com
< c‎ | string‎ | byte

 
 
 
Cordas de terminação nula de bytes
Funções
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Manipulação personagem
Original:
Character manipulation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Conversões para formatos numéricos
Original:
Conversions to numeric formats
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
strtoulstrtoull
Manipulação de cadeia
Original:
String manipulation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Exame String
Original:
String examination
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Manipulação de memória
Original:
Memory manipulation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Diversos
Original:
Miscellaneous
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Definido no cabeçalho <stdlib.h>
unsignedlong      strtoul(constchar*str, char**str_end, int base );
unsignedlonglong strtoull(constchar*str, char**str_end, int base );
Interpreta um valor inteiro sem sinal em uma seqüência de bytes apontado por str.
Original:
Interprets an unsigned integer value in a byte string pointed to by str.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Function discards any whitespace characters until first non-whitespace character is found. Then it takes as many characters as possible to form a valid base-n (where n=base) unsigned integer number representation and converts them to an integer value. The valid unsigned integer value consists of the following parts: None

  • (opcional) prefix (0) indicating octal base (applies only when the base is 8)
  • (opcional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is 16)
  • a sequence of digits

The set of valid digits for base-2 integer is 01, for base-3 integer is 012, and so on. For bases larger than 10, valid digits include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer. The case of the characters is ignored.

Os dígitos válidos para a base-2 inteiros são 01, para base-3 inteiros são 012, e assim por diante. Para bases maiores que 10, dígitos válidos incluem caracteres alfanuméricos, começando com a letra Aa para base-11 inteiros, até Zz para base-36 inteiros. Pode-se usar letras maiúsculas ou letras minúsculas.
Original:
{{{2}}}
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
As funções movem o ponteiro str_end para o próximo carácter depois do último carácter lido. Se str_end for nulo, ele é ignorado.
Original:
The functions sets the pointer pointed to by str_end to point to the character past the last character interpreted. If str_end is NULL, it is ignored.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Índice

[editar]Parâmetros

str -
ponteiro para o byte string terminada em nulo para ser interpretado
Original:
pointer to the null-terminated byte string to be interpreted
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
str_end -
ponteiro para um ponteiro para caracter .
Original:
pointer to a pointer to character.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
base -
Base do valor inteiro interpretado
Original:
base of the interpreted integer value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar]Valor de retorno

Valor inteiro correspondente ao conteúdo do str em caso de sucesso. Se o valor convertido cai fora do alcance do tipo de retorno correspondente, o erro ocorre e intervalo ULONG_MAX ou ULLONG_MAX é devolvido. Se nenhuma conversão pode ser executada, é devolvido 0.
Original:
Integer value corresponding to the contents of str on success. If the converted value falls out of range of corresponding return type, range error occurs and ULONG_MAX or ULLONG_MAX is returned. If no conversion can be performed, 0 is returned.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar]Exemplo

#include <stdio.h>#include <stdlib.h>   void main(void){char* dados[]={"1000", "2000", "3000", "4000", "5000"};   // UL no final do número indica que o número deve ser interpretado como um 'longo sem// sinal', ou seja, não negativo. unsignedlong soma = 0UL;   // Calcula o tamanho do array (quantos elementos ele tem)size_t tamanho =sizeof(dados)/sizeof(dados[0]);   for(size_t i =0; i < tamanho; i++){// Nesta conversão não estamos preocupados com o segundo parâmetro, // portanto passamos NULL (nulo). soma += strtoul(dados[i], NULL, 10);}printf("A soma do array é: %lu\n\n", soma);   char fruta[]="28 bananas.";char* fim_da_leitura;   // O segundo parâmetro da função strtoul() é do tipo char** (ponteiro para um ponteiro)// como a variável fim_da_leitura é um ponteiro (char*), nós precisamos extrair o seu// endereço de memória através do carácter & para convertê-la em um char** (ponteiro// para ponteiro).unsignedlong total_bananas = strtoul(fruta, &fim_da_leitura, 10);   printf("Total de bananas: %lu\nA leitura parou no string: '%s'\n\n", total_bananas, fim_da_leitura);   // Como podemos observar na saída acima, o total de 28 bananas foi impresso e a leitura// parou quando encontrou o carácter ' ', que não é numérico, entre o número 28 e a// palavra bananas.   // O que acontece quando temos uma situação inversa? Um carácter não numérico aparece// antes do carácter numérico. No exemplo abaixo podemos verificar que a conversão não// ocorreu e o ponteiro que aponta para os caracteres que foram lidos, está apontando// para o início do string.char letras_numeros[]="abc 123";unsignedlong numero = strtoul(letras_numeros, &fim_da_leitura, 10);   printf("numero: %lu\nfim_da_leitura: '%s'\n", numero, fim_da_leitura);   // A função strtoull(), string para unsigned long long, funciona da mesma maneira que// a função strtoul(), usando os mesmos tipos de parâmetros. A única diferença é que// ela returna um número do tipo unsigned long long (longo longo não negativo), quando// a conversão é bem sucedida, caso contrário, ela retorna 0.unsignedlonglong numero_longo = strtoull("1234567890987654321", NULL, 10);   // Note que para unsigned long long usamos %llu em vez de %lu que usamos no exemplo// acima.printf("numero_longo: %llu\n", numero_longo);}

Saída:

A soma do array é: 15000   Total de bananas: 28 A leitura parou no string: ' bananas.'   numero: 0 fim_da_leitura: 'abc 123'   numero_longo: 1234567890987654321

[editar]Veja também

converte uma seqüência de byte para um valor inteiro
Original:
converts a byte string to an integer value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(função)[edit]
converte uma seqüência de byte para um valor inteiro
Original:
converts a byte string to an integer value
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(função)[edit]
C++ documentation for strtoul
close