Осваиваю работу со строками. Программа меняет hello на HELLO. Пытаюсь разобраться, почему 1, 3 и 4 код работает, а 2 и 5 выдает числовые значения вместо букв.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
string s = "hello";
int i;
char c;
for (i = 0; i < s.length(); i++)
{
//printf("%c", toupper(s[i])); // 1) работает
cout << toupper(s[i]); // 2) выводит числа вместо букв
//putchar(toupper(s[i])); // 3) работает
//c = toupper(s[i]); // 4) работает
//cout << c;
//cout << toupper((char) s[i]); // 5) принудительное преобразование в char тоже не помогает
}
return 0;
}