I solved the problem a little the wrong way, in my opinion. Can the problem be considered solved?
Answer 1, authority 100%
It depends on what is considered the right decision. And depending on what is considered a word 🙂
Let’s accept, as you have, that a word is something delimited by spaces.
Your solution gives a stream of words, but does not preserve the number of spaces. For example, AAA BBB
will turn into AAA BBB
. How critical it is – you know better. In addition, your original string will be “spoiled”, it will not contain the same words, just with different first letters. Your task is not to display the words, but to change them in the line , as I understand it.
I would have done it easier – just scan character by character, and all characters following the space (as well as the first character of the line) are capitalized.
Will you write the code yourself?
Answer 2, authority 96%
can be simpler, although a matter of taste
# include & lt; iostream & gt;
#include & lt; cctype & gt;
using namespace std;
int main () {
cout & lt; & lt; "Enter words separated by spaces";
string s;
while (cin & gt; & gt; s) {
s [0] = toupper (s [0]); \\ re-transform
cout & lt; & lt; s & lt; & lt; "";
}
return 0;
}