If there are 40,000 strings, why have you decided to bubble sort them? This is under a bullet point talking about efficiency.
In C++ I am writing a bubble-sorting algorithm to sort a list of strings alphabetically ... If each string is 10,000 characters in size, and there are 40,000 strings your looking at a huge overhead implementing it this way.
A better question would be why have you decided to sort them yourself at all in fact, rather than just using std::qsort()?
Another reason i prefer C++ over C is because i don't have to invent the wheel every time i want a linked list, R/B tree or sort function, or have my own libraries of code built up when STL does most of it for me and is very extensible.