Or harness the power of regular expressions:
data have;
length str $40;
input str &;
cards;
word
random
mIxed
CASE
WORDS
Whole string of words.
a ab abc abc-def
;
data want;
if not prx1 then prx1 + prxParse("s/\b(\w?)(\w*)(\w)\b/\u\1\L\2\E\u\3/");
set have;
length StrinG $40;
StrinG = prxChange(prx1, -1, str);
drop prx1;
run;
proc sql; select * from want; quit;
... View more