01-04-2016 09:29 AM
I am concatenating 2 strings using || operator. Below is the question:
length string1 $20.;
string1 = "Gurpreet";
string2 = "Kaur";
string1 = string1 || string2;
My question is: The value of string1 in the dataset should be "GurpreetKaur". But the value is being shown as "Gurpreet" only. Please explain.
01-04-2016 09:37 AM
Please try with cats function, may the additional spaces are inhibiting from displaying the full name
data sample; length string1 $20.; string1 = "Gurpreet"; string2 = "Kaur"; string1 = cats(string1,string2); run; proc print; run;
01-04-2016 09:44 AM
Yes, do remember that a string is an array of characters. Where you define string1 to be $20 this means 20 boxes each with its own character. So when you concatenate "Gurpreet " with "Kaur", and put those 24 characters back into a variable which can only hold 20 characters the last four are dropped.
There are pletny of options to resolve this, for instance strip() each value:
Or as @Jagadishkatam has given you, the cats() function would work well, note however you might want a space between so catx would be a better choice: