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

yOURsELF

Juntar (append) numeros inteiros

9 mensagens neste tópico

Alguém me sabe dizer como posso fazer isto ?

por exemplo tenho dois int's:  117 e 14... queria que o resultado fosse outro int igual a 11714

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém me sabe dizer como posso fazer isto ?

por exemplo tenho dois int's:  117 e 14... queria que o resultado fosse outro int igual a 11714

fazes tipo 117*100+14...  nesse sentido!!!  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

è uma hipótese tofas, mas não convém se for para todos os números, vais ter de recebê-los como char (é melhor acho eu)

do tipo

#include <iostream>
using namespace std;

int main () {
char ch;
int i;
char numero[82];
cout << "Insira os dois numeros com espaço entre eles" << endl;
for (i = 0; (ch = cin.get ()) != '\n'; ++i)
if (!isspace(ch)) numero[i]=ch;
else --i;
for (i = 0; i <= strlen(numero); ++i) cout << numero[i];
return 0;} 

sim eu sei...mas so dei a ideia....

agora se quiser kiser manipular esses numeros...nao sei se é boa ideia a tua...mas claro...boa nota pros juntar...  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu sei...mas so dei a ideia....

agora se quiser kiser manipular esses numeros...nao sei se é boa ideia a tua...mas claro...boa nota pros juntar...  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A ideia da tofas funcionaria, mas seria perciso fazer uma fórmula para avaliar o tamanho do segundo numero, o que iria meter 10^n e tal. Mas se for necessáro manipular os numeros essa seria a maneira correcta.

Agora a maneira do vbmaster é a mais pratica so para aquela questão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pessoal :thumbsup:

Só mais uma dúvidazinha: tenho aqui um ciclo que vai juntando caracter a caracter numa stringstream. O que eu queria saber é como remover o último caracter duma stringstream, como tipo em vectores que é 'v.pop_back()'.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

duma stringstream? isso é muito diferente duma string?

para saberes o último cartacter ocupado na string é só fazer strlen(string) - 1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

error C2039: 'strlen' : is not a member of 'std::basic_stringstream<_Elem,_Traits,_Alloc>'  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

è uma hipótese tofas, mas não convém se for para todos os números, vais ter de recebê-los como char (é melhor acho eu)

do tipo

#include <iostream>
using namespace std;

int main () {
char ch;
int i;
char numero[82];
cout << "Insira os dois numeros com espaço entre eles" << endl;
for (i = 0; (ch = cin.get ()) != '\n'; ++i)
if (!isspace(ch)) numero[i]=ch;
else --i;
for (i = 0; i <= strlen(numero); ++i) cout << numero[i];
return 0;}

sim eu sei...mas so dei a ideia....

agora se quiser kiser manipular esses numeros...nao sei se é boa ideia a tua...mas claro...boa nota pros juntar... :thumbsup:

Outra maneira muito mais simples, intuitiva e sem ciclos é esta:


int a=215421, b=16464;
char numero[100];

// dois numeros numa string:
sprintf(numero,"%d%d",a,b);

Porque não fazes isso como vector de char?

Se fizesses isso seria assim dentro do ciclo:

// retira a dimensao
n=strlen(numero);
// guarda o valor
pop=numero[n - 1];
// apaga o numero
numero[n - 1]='\0';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora