Conversão de Vetores.

1. Conversão de Vetores.

charles
charles messias

(usa Outra)

Enviado em 22/04/2012 - 03:49h

Pessoal estou com um pequeno problema com vetores.
estou lendo uma sequencia de números em um vetor char e depois de ler jogo para outro vetor
inteiro quando imprimo os valores do vetor inteiro sai com valores diferentes.
e o char sai correto. vi na internet uma função "atoi" para converter usei mais não funcionou. alguem ai já precisou fazer isso ?

código de exemplo abaixo.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char vet1[3];
int vet2[3];
int i,cont;

printf("Digite um numero ate 999 : ");
gets(vet1);

cont = strlen(vet1);

for(i = 0; i < cont; i++)
{
vet2[i] = vet1[i];
}

printf("\n%i\n",cont);
printf("\n%i\n",vet2);
printf("\n%s \n",vet1);


return 0;
}



  


2. Re: Conversão de Vetores.

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 22/04/2012 - 08:53h

Veja seu código corrigido:


#include <stdio.h> //só precisa dessa biblioteca.

main(){
char vet1[3];
int num; //o inteiro não é um vetor.

printf("Digite um numero ate 999 : ");
gets(vet1);

num = atoi(vet1); //faz a converção de string para inteiro.

printf("\n%d\n",num);
printf("\n%s \n",vet1);
}



3. acho que ainda não vai dar certo.

charles
charles messias

(usa Outra)

Enviado em 22/04/2012 - 13:28h

pq essa é só uma pequena parte do meu programa. depois vou ter que fazer uns cálculos com os números separados, não posso jogar tudo dentro de uma variável inteira.

um exemplo de outro caso que funcionaria. mais o atoi não converte as posições por isso não da certo.

main(){
char vet1[3];
int num1,num2,num3; //o inteiro não é um vetor.

printf("Digite um numero ate 999 : ");
gets(vet1);

num1 = atoi(vet1[1]); //faz a converção de string para inteiro.
num2 = atoi(vet1[2]);
num3 = atoi(vet1[3]);

printf("\n%d\n",num);
printf("\n%s \n",vet1);
}



4. Re: Conversão de Vetores.

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 22/04/2012 - 22:28h

Meu, então faz um vetor de string. v[][].


5. Fiz assim funcionou.

charles
charles messias

(usa Outra)

Enviado em 23/04/2012 - 00:16h


#include <stdio.h>

int main()
{
char vet1[9],resp;
int valor, n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11;

printf("Digite um numero entre 100000000 ate 999999999 ");
gets(vet1);


valor = atoi(vet1);

n1 = valor / 100000000;
n2 = ((valor / 10000000)%10);
n3 = ((valor / 1000000)%10);
n4 = ((valor / 100000)%10);
n5 = ((valor / 10000)%10);
n6 = ((valor / 1000)%10);
n7 = ((valor / 100)%10);
n8 = ((valor / 10)%10);
n9 = ((valor)%10);

printf("\nteste %i",n1);
printf("\nteste %i",n2);
printf("\nteste %i",n3);
printf("\nteste %i",n4);
printf("\nteste %i",n5);
printf("\nteste %i",n6);
printf("\nteste %i",n7);
printf("\nteste %i",n8);
printf("\nteste %i",n9);
return 0;
}



6. Ve se assim te serve!

Geovani
geovanicelebrim

(usa Ubuntu)

Enviado em 03/11/2012 - 12:33h

#include <stdio.h>

int main()
{
char vet1[3];
int vet2[3], i;

printf("Digite um numero ate 9999 : ");
gets(vet1);

for (i=0; i<4; i++)
vet2[i] = vet1[i] - 48; // Faz a conversão de acordo com o valor do caractere

for(i=0; i<4; i++)
printf("%d\n",vet2[i]); //Mostra a o valor contido em cada espaço do vetor inteiro

return 0;
}






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts