I think for sorting strings algorithm, you can't use strcmp. strcmp finds the value difference between whole words.
What you have to do, is compare characters. Luckily, char in C++ can be considered as integers. So all you have to do is the following:
1- Get the maximum word length
2- Loop over the words and sort by comparing the int value of the first character.
3- Loop over the words that have the same first character, and sort by the second character's int value
4- Loop over the words that have the same first and second characters, and sort by the third character.
...
Keep doing that till you get the whole list sorted.
Remember, you can use operator[] to access the characters in std::string.
Remember, capital and small characters have different values. Probably you wanna use the functions toupper() and tolower() to convert the char to a unfied form before comparing.
And notice that those functions take an int as a argument, which is equivalent to char. The only difference is that int could be 4 or 8 bytes, but char is 1 byte. So char is practically a number from 0 to (2^8-1) = 255, which the compiler interprets it as a character.