Как создать программу на языке Си, которая будет определять, каких букв в тексте больше: строчных или прописных? Если в тексте больше прописных букв, необходимо заменить все строчные буквы на прописные. Если же больше строчных, то прописные буквы следует заменить на строчные. В случае, если количество строчных и прописных букв одинаково, текст должен остаться без изменений.
Информатика 11 класс Программирование на языке Си программа на языке Си строчные и прописные буквы замена букв информатика 11 класс алгоритм для текста Новый
Для создания программы на языке Си, которая будет выполнять указанные действия, следуйте приведенным ниже шагам:
fgets
.Теперь давайте посмотрим на пример кода, который реализует вышеописанные шаги:
#include <stdio.h> #include <ctype.h> int main() { char text[100]; // массив для хранения текста int lowerCount = 0, upperCount = 0; // Считываем текст printf("Введите текст: "); fgets(text, sizeof(text), stdin); // Подсчитываем строчные и прописные буквы for (int i = 0; text[i] != '\0'; i++) { if (islower(text[i])) { lowerCount++; } else if (isupper(text[i])) { upperCount++; } } // Сравниваем количество букв if (upperCount > lowerCount) { // Заменяем строчные буквы на прописные for (int i = 0; text[i] != '\0'; i++) { text[i] = toupper(text[i]); } } else if (lowerCount > upperCount) { // Заменяем прописные буквы на строчные for (int i = 0; text[i] != '\0'; i++) { text[i] = tolower(text[i]); } } // Выводим результат printf("Результат: %s", text); return 0; }
Объяснение кода:
stdio.h
необходима для ввода-вывода, а ctype.h
- для работы с символами (функции islower
, isupper
, tolower
, toupper
).fgets
для считывания строки, что позволяет избежать переполнения буфера.Таким образом, программа позволяет определить, каких букв больше, и в зависимости от этого изменяет регистр букв в тексте. Не забудьте протестировать программу с разными входными данными!