После ввода пробела заменить следующую строчную букву на заглавную и наоборот - C (СИ)
Формулировка задачи:
Здравствуйте! Первый семестр изучаю си, который дается мне очень тяжело (первый язык программирования).
Бьюсь пол недели над кодом который после получения в тексте 'пробел' будет менять в следующем слове строчную букву на заглавную или заглавную на строчную. Пример:
Disease is the retribution Of Outraged Nature
Desease Is The Retribution of outraged nature
как можно такое написать не используя готовые функции? Спасибо
Решение задачи: «После ввода пробела заменить следующую строчную букву на заглавную и наоборот»
textual
Листинг программы
#include <stdio.h>
int main()
{
int c, prc;
while ((c = getchar()) != EOF) {
if (prc == ' ') {
if (c >= 'a' && c <= 'z')
putchar(c - 32);
if (c >= 'A' && c <= 'Z')
putchar(c + 32);
}
else
putchar(c);
prc = c;
}
return 0;
}
Объяснение кода листинга программы
- Вводится символ 'c' при помощи функции getchar()
- Если символ 'c' равен пробелу ' ' то выполняется следующий блок кода
- Проверяется, является ли символ 'c' строчной буквой от 'a' до 'z' (включительно)
- Если это так, то из 'c' вычитается 32 и результат выводится на экран при помощи функции putchar()
- Проверяется, является ли символ 'c' заглавной буквой от 'A' до 'Z' (включительно)
- Если это так, то из 'c' прибавляется 32 и результат выводится на экран при помощи функции putchar()
- Если символ 'c' не равен пробелу ' ', то он выводится на экран без изменений при помощи функции putchar()
- Значение символа 'c' присваивается переменной 'prc'
- Цикл while продолжается, пока не будет достигнут конец файла (EOF)
- В конце программы возвращается 0, что означает успешное выполнение