VC++: Probleme mit Strings

Hi,
ich hab Probleme mit den kranken Strings unter C: Ich habe folgendes Programmstück, welches nicht funzt:

char buffer[20];
char\* elts="";

itoa(myLongVal,buffer,10);
if (strlen(elts)==0) { //First element
 strcat(elts ,buffer);
} else {
 strcat(elts,",");
 strcat(elts,buffer);
}
strcat(elts,":smiley:EVICE"); // Add delimiter and element

Also konkret: Ich will einen Int/Long-Wert zusammen mit Literalen in einen String packen, was bei mir aber zum verzweifeln nicht funzt. Falls es undeutlich war, wer kann mir so eine ähnliche VB-Zeile richtig in C übersetzen:

const EINTEST=" ein Test!"
dim s as string
s= "Dies " & cstr(LongVal) & " ist " & EINTEST

Ralph

Hallo Ralph,

ich hab Probleme mit den kranken Strings unter C: Ich habe
folgendes Programmstück, welches nicht funzt:

char buffer[20];
char* elts="";

// elts reserviert nur den Speicher für einen Zeiger auf
// einen leeren string. Es wird aber kein Speicherplatz für das
// abspeichern von Zeichen reserviert !!!
char elts[100] = {""};
// Dadurch wird Speicherplatz für 100 Zeichen reserviert und mit
//einem leeren String initialisiert.

itoa(myLongVal,buffer,10);
if (strlen(elts)==0) { //First element
strcat(elts ,buffer);
} else {
strcat(elts,",");
strcat(elts,buffer);
}
strcat(elts,":smiley:EVICE"); // Add delimiter and element

Also konkret: Ich will einen Int/Long-Wert zusammen mit
Literalen in einen String packen, was bei mir aber zum
verzweifeln nicht funzt. Falls es undeutlich war, wer kann mir
so eine ähnliche VB-Zeile richtig in C übersetzen:

const EINTEST=" ein Test!"
dim s as string
s= "Dies " & cstr(LongVal) & " ist " & EINTEST

const char EINTEST = " ein Test!"
char s[100];

sprintf(s, „Dies %ld ist%s“, LongVal, EINTEST);

MfG Peter(TOO)

Ist ja logisch…

// elts reserviert nur den Speicher für einen Zeiger
auf
// einen leeren string. Es wird aber kein Speicherplatz für
das
// abspeichern von Zeichen reserviert !!!

Stimmt, sollte ich eigentlich selber wissen, aber das kommt davon, wenn man zuviel mit Java, VB oder PHP arbeitet… :wink:

Ralph