Ir ao conteúdo
  • Cadastre-se
Gabriel Pancaldi

C RESOLVIDO Transformar um string char em int

Recommended Posts

Spoiler

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <math.h>
#define T 10

int oct_dec(char []);

int main(){
    int nc;
    char str[50];

    printf("Informe o numero octal:");
    gets(str);

    nc = oct_dec(str);

return 0;
}

int oct_dec(char *oct){
    int i, cv, soma, cont = 0;

    soma = 0;

    for(i = strlen(oct) - 1;i >= 0; i--){
        cv = oct[i] * pow(8, cont);
        cont++;
        soma = soma + cv;
    }

    printf("%d", soma);
    return(soma);
}

 

 

Estou com duvida para converter o numero dentro do vetor char para ele mesmo em int, por que quando faço a conta direto ele é convertido para o numero na versao da tabela ascii.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os caracteres dos dígitos indo de '0' a '9' estão em sequência na tabela ASCII, indo da posição 48 até 57 na tabela, então basta subtrair '0', que é o primeiro número da seqüência, do caractere que quer converter para obter o número inteiro correspondente.

oct[i] - '0'

 

Também poderia subtrair 48 que é o número do caractere '0', mas acho que subtrair '0' descreve melhor o que deseja fazer, além de não precisar saber qual é o número dele na tabela para chegar ao resultado.

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, mano.

Agora posso fazer as outras conversões, estava com duvida só nessa conversao de valores.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×