how can i print a char array such i initialize and then concatenate to another char array? Please see code below
int main () {
char dest[1020];
char source[7]="baby";
cout <<"source: " <<source <<endl;
cout <<"return value: "<<strcat(dest, source) <<endl;
cout << "pointer pass: "<<dest <<endl;
return 0;
}
this is the output
source: baby
return value: v����baby
pointer pass: v����baby
basically i would like to see the output print
source: baby
return value: baby
pointer pass: baby
You haven’t initialized
destYou were just lucky that it so happened that the 6th (random) value in
destwas0. If it was the 1000th character, your return value would be much longer. If it were greater than 1024 then you’d get undefined behavior.Strings as
chararrays must be delimited with0. Otherwise there’s no telling where they end. You could alternatively say that the string ends at its zeroth character by explicitly setting it to 0;Or you could initialize your whole array with 0’s
And since your question is tagged
C++I cannot but note that in C++ we usestd::strings which save you from a lot of headache. Operator + can be used to concatenate twostd::strings