Стоит задача, водится строка, при выводе должно быть две строки, одна выводит символы только верхнего регистра, вторая только нижнего. Начал писать, цикл для определения нижнего регистра, выводит все, но останавливается если на его пути встречается символ с верхним регистром. Как правильно исправить код?
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <cctype>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int str0=0;
char str[100],str1, str2;
cout << "Строка: ";
cin >> str;
while (str[str0])
{
str1 = str[str0];
if (islower(str1)) {
cout << str1;
str0++;
}
}
system("pause");
return 0;
}
str0++; надо вынести из if.
Вот так:
while (str[str0])
{
str1 = str[str0];
if(islower(str1))
{
cout << str1;
}
str0++;
}
А иначе при встрече символа в верхнем регистре у вас инкремент индекса прекращается, и вы зацикливаетесь на этом символе навсегда.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости