Oppure

Loading
22/12/08 12:49
FrnbacYescO
Salve, sto cercando di compilare un programma che all'interno deve fare una somma di vari valori char e unirli in un unico risultato, il problema e che s faccio "alla vb" mi da l'errore cannot add two pointer.

faccio un esempio per essere più chiaro.

ho queste definizioni:
char *usersomma="", *usertext1="user", *usertext2="ciao", *usertext3="bla", *usertext4="casa";


durante l'uso del programma "usersomma" deve assumere il valore di tutti gli altri valori cioè dovrebbe uscire fuori "userciaoblacasa"

ho tentato inutilmente così (alla vb):
usersomma = usertext1 + usertext2 + usertext3 + usertext4;

ma mi restituisce l'errore "cannot add two pointers"

come posso fare questa "semplicissima" somma??

Grazie

ps. uso c++6
Ultima modifica effettuata da FrnbacYescO 22/12/08 12:50
aaa
22/12/08 16:04
Overflow
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
	char *usersomma, *usertext1="user", *usertext2="ciao",
		*usertext3="bla", *usertext4="casa";
	
	usersomma = new char[strlen(usertext1)+
		strlen(usertext2)+
		strlen(usertext3)+
		strlen(usertext4)];

	strcpy(usersomma,usertext1);	
	strcat(usersomma,usertext2);
	strcat(usersomma,usertext3);
	strcat(usersomma,usertext4);

	cout << usersomma;
	return 1;
}
aaa
22/12/08 16:06
munkaka
volendo puoi anche dichiarare i char come array
char usersomma[255], usertext1[10]="user", usertext2[10]="ciao", usertext3[10]="bla", usertext4[10]="casa";

Ultima modifica effettuata da munkaka 22/12/08 16:07
aaa
22/12/08 16:21
mc
Overflow ha dimenticato il:
delete[] usersomma


prima del return.
Ma non è il forum C++ ?
Allora:
std::string usertext1="user";
std::string usertext2="ciao";
std::string usertext3="bla";
std::string usertext4="casa";
std::string usersomma = usertext1 + usertext2 + usertext3 + usertext4;
aaa