Concatenar dois um CHAR e um CHAR convertido de INT [RESOLVIDO]

1. Concatenar dois um CHAR e um CHAR convertido de INT [RESOLVIDO]

William Lima
willdoidao

(usa Ubuntu)

Enviado em 11/09/2013 - 15:46h

Cara,

Mais uma vez estou quebrando a cabeça para concatenar dois char, um deles é um int convertido em char usando a função itoa e o outro é uma frase, já pré definida.
Minha ideia é:

Usuario0;
Usuario1;
Usuario2;
Usuario3;
Usuario4;
Usuario5;
etc...

Só que até agora não consegui isso, o código até o momento:


using namespace std;

int main(int argc, char *argv[])
{
char nome[100] = "Usuario";
char a[10];
char teste;
int i=0;

for(i;i<=20;i++)
{
itoa(i,a,10);
nome[8] = a;
cout << nome[8] << "\n";
}

system("pause");
return 0;
}



  


2. Re: Concatenar dois um CHAR e um CHAR convertido de INT [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 12/09/2013 - 02:24h

Evite usar a função itoa(), pois ela não faz parte de qualquer padrão do C ou do C++ e, além disso, é insegura, uma v3z que não oferece meios de limitar o tamanho máximo da string convertida.

A forma mais geral de concatenar vários pedaços de dados de tipos distintos numa mesma string em C é através da função snprintf(). Em C++, você poderia usar std::ostringstream.


3. Re: Concatenar dois um CHAR e um CHAR convertido de INT [RESOLVIDO]

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 12/09/2013 - 16:42h

Use a tabela ASCII.

Os números na tabela ASCII começam no 48, logo:


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

#define DEFAULT_STR "Usuario"
#define DEFAULT_NUM 8
#define ASCII_NUMBERS 48

int main ( void ) {
register int i;
char nome[100] = DEFAULT_STR;

for ( i = 0; i < DEFAULT_NUM; i++ ) {
nome[ strlen(DEFAULT_STR) ] = (char)(i + ASCII_NUMBERS);
nome[ strlen(DEFAULT_STR) + 1] = 0x0;

printf ( "# %d: %s\n", i, nome );
}

return 0;
}




[ root c ]# gcc -o vol vol.c
[ root c ]# ./vol
# 0: Usuario0
# 1: Usuario1
# 2: Usuario2
# 3: Usuario3
# 4: Usuario4
# 5: Usuario5
# 6: Usuario6
# 7: Usuario7
[ root c ]#


Enzo Ferber
[]'s


4. Re: Concatenar dois um CHAR e um CHAR convertido de INT [RESOLVIDO]

William Lima
willdoidao

(usa Ubuntu)

Enviado em 15/09/2013 - 00:43h

Cara,

Muito obrigado pela ajuda!