Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
sent

separar um numero para um vetor (123 -> 1|2|3)

Recommended Posts

sent

estou com um problema e preciso da vossa ajuda: como contar quantas casas tem um numero e separado;

exemplo introduzir 19483 e ele dá 1 9 4 8 3, num vector de inteiros;

agradeço a vossa colaboração e obrigado  :)

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

dependendo de uma coisa... se o numero for inserido pelo utilizador...

guardas para um array do tipo char (ou seja uma string :D ) e assim já tens 2 coisas... acesso ao tamanho do numero (via strlen(var_array):) e o numero dividido por casas num array (onde em "abba" o primeiro "a" seria var_array[0]:D

Caso tenhas um numero guardado numa variável do tipo int....

uma maneira é, fazeres um while com divisões sucessivas por 10 até o numero deixar de ser inteiro (ou ser <=0) .... claro no while fazes a incrementação de uma variavel... normalmente denominada de contador....

a seguir, crias um array com o tamanho de acordo com o contador e chutas para la os inteiros, mais uma vez a fazer as divisões por 10 ... :/ digo eu claro :P

Não sou coder de C acho que existem melhores maneiras... mas pronto isto é uma maneira :D

Share this post


Link to post
Share on other sites
sent

dependendo de uma coisa... se o numero for inserido pelo utilizador...

guardas para um array do tipo char (ou seja uma string :P ) e assim já tens 2 coisas... acesso ao tamanho do numero (via strlen(var_array):) e o numero dividido por casas num array (onde em "abba" o primeiro "a" seria var_array[0]:D

...

gostei, já sei como: vou fazer lei uma string e depois char a char subtraio 48 (na tabela de ASCII '0' e 48);

e já fico com o vector de inteiros; já que necessite deste para fazer contas e é melhor com array de inteiros;

obrigado :D

Share this post


Link to post
Share on other sites
Localhost

@sent, desculpa, estava distraído e disse função fprintf em vez de sprintf. Depois usas a função atoi como disse o main_infection.


here since 2009

Share this post


Link to post
Share on other sites
dnascimento

Se for introduzido pelo user: (em ficheiro é identico)

queres guardar isso num array? Tens limite predefinido ou é dinamico?

um while. Enquanto o int lido foi entre 0 e 9 (entre plicas), variavel++, guarda no ponteiro x (copia do ponteiro original do vector) e faz x++ para avancar o ponteiro, se for dinamica fazes um realloc (ou um malloc e copias tudo)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.