your code looks very good, nice job with that, but i see what you mean about the endline thing. I can't really think of an easy way around it, so i'll just give you some tips on how i'd have done it.....you can take 'em or leave 'em, they're just here for help
the way i would do it is to get the string from the user using cin.getline. Once you have that, if it's the first time the user has entered a string, then it must be unique. If it's not the first time, then run through your array of inputted strings to see if the user has put the string in yet. If they haven't, put the new string at the end and increment the counter.
Also, you can add case-sensitivity in there by converting the string tolower or toupper before placing it in the array, or just doing it on the fly when comparing so as not to lose any data.
I made a program that shows this, if you would like to see it, please feel free to ask me, but i'd advise that you try to see if you can figure it our yourself given the tips above
here's some pseudocode, that above paragraph might be confusing.....
Create the array of strings with any number of lengths and sizes
initialize the counter of unique strings to 0
prompt the user for the string
convert the whole string to lowercase
is it the first string entered?
Add it to the first slot in the array and increment the counter
run through the list of strings
compare the strings in the array to the one inputted, if none of them are the same, it must be unique-
if it was unique, add it to the end of the array and increment the counter
repeat until the user wants to quit (or whatever you choose to do)