string namn;
Deklarerar namn som string
bool loop = true;
Deklarerar loop som boolesk och ger den värdet true
cout << "Skriv ditt namn: ";
skriver ut "Skriv ditt namn: " på skärmen
getline(cin, namn);
Läser av den inskrivna informationen och placerar den i variabeln namn. Fördelen med getline istället för enbart cin är att den läser även whitespaces.
if(namn[0] == '\0')
loop = false;
om tecken 0 är \0 så sätt variabeln loop till false
Här går det att göra en namn.length() kontroll istället, vilket säkert är bättre
else
annars
if (namn.find(' ') == string::npos)
Här kollar den efter ett mellanslag i variabeln namn.
Om det finns ett mellanslag returneras platsen för mellanslaget, annars returneras string::npos
int spacePos = namn.find(' ');
deklarerar variabeln spacePos till integer och ger den värdet av den första spacens plats.
namn[0] += -32;
variabeln namns första bokstav får värdet av -32 -tecken, vilket resulterar i att patrik blir Patrik
namn[spacePos+1] += -32;
variabeln namns förstabokstav efter spaceposition får stor bokstav.
cout << namn.substr(spacePos+1,namn.size()) <<
substr plockar ut stängar ungefär som mid() i VBScript.
variabeln namn.subst.. .spacePos+1 till slutet av namn. Vilket innebär att den letar upp spacen, går ett tecken fram och skriver sedan ut därifrån fram till slutet.
", "
skriver ut ett komma
<< namn.substr(0,spacePos) << endl;
här är substr igen. Men här går den från tecken 0 till spacePos.
Lycka till!