Ir ao conteúdo
  • Cadastre-se
diogo moura

C Como converter de string para int

Recommended Posts

Olá @diogo moura !

Use a função sprintf( ); Porém antes de chamar a função o argumento string deve ser 1+ que a quantidade de dígitos do inteiro.

Entendeu ?

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Mauro Britivaldo 

Perdão eu me confundi na hora de digitar era de inteiro para string

A questão pede pra soma os números dentro da string

 

uri.png.67e91e52a78a5ad1ef57569116fa3837.png

 

Eu consegui achar o resultado utilizando a função atoia, só que não foi aceito

 

Parte do código que eu fiz as conversões

 

n1 = nome[2] - 48; /*transformei os dois numeros para interios*/
n2 = nome[3] - 48;
itoa(n1, p1, 10);  /*converti para string*/
itoa(n2, p2, 10);  /* Só que parece o itoa não está mais sendo utilizado*/
strcpy(final, p1); /*E concatenei eles*/
strcat(final, p2);
n1 = atoi(final); /*Por fim tranformei ele novamente em inteiro*/
printf("%d\n", n1);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja bem aqui

n1 = nome[2] - 48; /*transformei os dois numeros para interios*/
n2 = nome[3] - 48;

Vamos estudar estas duas Vetor: n1 e Vetor: n2.

são vetores respectivamente de 2, e 3 caracteres suponho, ou do tipo que foram declarados.

Sinceramente eu não sei o porquê de você achar que subtrair 48 no primeiro elemento do vetores os converte para inteiros. 

:tw_confounded:Acabei não entendendo e nada, olha que sou um ser humano imagina a coitada da máquina 

adicionado 8 minutos depois

Um dica: 

IsNumber= scanf(" %d",&Number);// A função scanf retona 0- se não número;

Faz um teste aí.

adicionado 12 minutos depois
chr= getchar();// retorna qualquer 1 caractere do stream input;

imagine você que scan := 0, então getchar vai e limpa até que scanf seja 1. Só isso já resolve.

adicionado 47 minutos depois

Não é a solução, porém experimento o programa abaixo

Obs.: EOF no prompt é Ctrl+Z para Microsoft Windows.

Ignore_resto_soma_int

{
   int  Total;
   int  Numero;
   char ret;

   Total= 0;
   for(ret= 1;ret;/*não preciso incrementar*/)switch(scanf("%d",&Numero)) {
      case 1: Total+= Numero;/*eh número*/
      case 0: if('\n' == getchar())ret= 0;/*não eh número e se ENTER: Termina*/break;
      case EOF: ret= 0;/*Fim-Do_aquivo*/break;
      default: puts("Doideira");
      return 0;
      }
   if(Total)printf("Resultado: %d\n",Total);
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é um problema clássico dos livros da web, historicamente poderíamos ver soluções assim: 

{
   int  Total;
   int  Numero;
   char ret;

   Total= 0;
   Continue:
   switch(scanf("%d",&Numero)) {
      case 1: Total+= Numero;/*eh número*/
      case 0: if( (ret = getchar()) == '\n' || ret == EOF )
                  goto Fim;/*não eh número e se ENTER: Termina*/
              else
                  goto Continue;
      default: puts("Doideira");
      return 0;
      }
   Fim:
   if(Total)printf("Resultado: %d\n",Total);
}

O goto faz justiça a sua fama.

  • Curtir 1

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

×