В строке заменить строчную букву на прописную - C (СИ)
Формулировка задачи:
Всем привет!
У меня есть работающая функция, которая заменяет строчную букву на прописную, если буква стоит после запятой. Но в этом коде есть повторение (тавтология?), которую хотелось бы исправить. Помогите, пожалуйста, это сделать.
Плюс ко всему, куча вложенных циклов утомляет и усложняет программу.
Простая задачка, но бьюсь уже много времени, чтобы упростить.
Буду благодарен за любую помощь.
Спасибо.
void Upper(char str[], int &count) { int i=0; for(i; str[i]; ++i) { if(str[i] == ',' ) { while(str[i]) { if(isalpha(str[i]) && isupper(str[i])) { str[i] = tolower(str[i]); break; } ++i; } } } }
Решение задачи: «В строке заменить строчную букву на прописную»
textual
Листинг программы
#include <iostream> using namespace std; int main() { char str[1024] = {0}; cout<<"Enter str (less than 1024 chars)\n"; cin.getline(str,1024);//Ввод строки символов можно с пробелами for(int i = 0; str[i + 1] != '\0'; i++) { //Проверяем стоит ли символ после запятой //и в нижнем регистре ли он if(str[i] == ',' && islower(str[i + 1])) str[i + 1] = toupper(str[i + 1]);//Если да то поднимаем регистр } cout<<"Text after replacing\n"; cout<<str<<endl; system("pause"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с потоками ввода-вывода и строками.
- Объявление переменной типа int для хранения количества символов в строке.
- Объявление массива символов типа char с размером 1024 символа и инициализацией всех его элементов нулевым значением.
- Вывод сообщения с просьбой ввести строку символов.
- Ввод строки символов с помощью функции
getline
в массивstr
. - Проверка каждого символа в массиве
str
на соответствие заданным условиям: символ за запятой и символ в нижнем регистре. - Если условия выполняются, то изменяем значение следующего символа в массиве на верхний регистр с помощью функции
toupper
. - Вывод сообщения о завершении замены символов.
- Вывод строки символов в консоль с помощью оператора
cout
. - Ожидание нажатия клавиши для завершения работы программы с помощью функции
pause
. - Возвращение значения 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д