Программа компилируется но текст не переводит. Причём не работает что с подключенными библиотеками ctype что без них. tolower тоже не работает
void strToUpper(string &line)
{
for (int i = 0; i < line.length(); i++)
if (islower(line[i]))
toupper(line[i]);
}
void strToLower(string &line)
{
for (int i = 0; i < line.length(); i++)
if (isupper(line[i]))
tolower(line[i]);
}
void main()
{
int selecter;
string line;
cout << "Enter line:";
getline(cin, line);
cout << "Select (1-upper, 2-lower)\n";
cin >> selecter;
if (selecter == 1)
strToUpper(line);
else if (selecter == 2)
strToLower(line);
else
{
cout << "ERROR!";
return;
}
cout << line << "\n\n\n\n";
}
Конечно не переводит, ведь результат перевода вы игнорируете. Должно быть так:
line[i] = static_cast<char>(toupper(line[i]));
В tolower/toupper
буква передается по значению, а не по ссылке.
Вызывайте как
c = toupper(c);
Кстати, вот еще вариант для строки...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При старте приложения на сервере Tomcat происходит ошибка
Вопрос в следующем, есть java сервлет и скриплет (jsp) с javaScriptНа сервере происходит обновление в файловой системе, а на jsp это отображается отправляя...
На входе, в первой строке задано натуральное число N – количество жильцов (N ≤ 100)В последующих N строках располагается информация о всех жильцах:...