Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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);
}

 

Editado por Mauro Britivaldo
  • 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.

Editado por Mauro Britivaldo
  • 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






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

×