В строке заменить строчную букву на прописную - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с потоками ввода-вывода и строками.
  2. Объявление переменной типа int для хранения количества символов в строке.
  3. Объявление массива символов типа char с размером 1024 символа и инициализацией всех его элементов нулевым значением.
  4. Вывод сообщения с просьбой ввести строку символов.
  5. Ввод строки символов с помощью функции getline в массив str.
  6. Проверка каждого символа в массиве str на соответствие заданным условиям: символ за запятой и символ в нижнем регистре.
  7. Если условия выполняются, то изменяем значение следующего символа в массиве на верхний регистр с помощью функции toupper.
  8. Вывод сообщения о завершении замены символов.
  9. Вывод строки символов в консоль с помощью оператора cout.
  10. Ожидание нажатия клавиши для завершения работы программы с помощью функции pause.
  11. Возвращение значения 0, что означает успешное завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы