Jump to content

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


sent
 Share

Recommended Posts

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  🙂

Link to comment
Share on other sites

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

guardas para um array do tipo char (ou seja uma string 😄 ) 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]😄

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 😛

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

Link to comment
Share on other sites

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

guardas para um array do tipo char (ou seja uma string 😛 ) 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]😄

...

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 😄

Link to comment
Share on other sites

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)

Link to comment
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
 Share

×
×
  • Create New...

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.