Files
sibsutis/proglabs/lab10/func.c
T
2025-11-23 14:46:42 +07:00

175 lines
6.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "head.h"
int buffinput(int *x, int *inbuff, int *buff){
setlocale(LC_ALL, "");
//INPUT-------------------------------------------------
wint_t ch;
*inbuff = 0;
while((ch=getwchar())!='\n'&&*inbuff<BUFFMAX){
*(buff+*inbuff)=(int)ch;
(*inbuff)++;
}
//______________________________________________________
//COUNT -------------------------------------------------
int c=0;
for(int i = 32;i<=64;i++){
if(
('а'<=&&>='я') ||
('А'<=&&>='Я')
){x[0]++;c++;continue;}
else if('0'>=buff[c]&&buff[c]<='9'){x[1]++;continue;}
else if(buff[c]==i){x[i-30];c++;continue;};
else {x[23]++;c++;}
}
//________________________________________________________
return 0;
}
void func1 (int *x, int *buff){
switch(FUNC1){
case 1://Определяет среднюю длину слова в тексте
{
break;
}
case 2://Подсчитывает количество слов, длина которых не превышает 5 символов.
{
break;
}
case 3://Определяет количество букв после первого и до последнего слова.
{
break;
}
case 4://Удаляет первую букву каждого слова и выводит результат.
{
break;
}
case 5://определяет, сколько в заданном тексте слов, начинающихся с буквы,заданной пользователем.
{
break;
}
case 6://находит сумму всех цифр в введенном предложении. (если в тексте нетцифр, добавить) предусмотреть обработку шаблонов (12word, wo12rd,word12)
{
break;
}
case 7:// вставляет восклицательный знак в конце каждой строки текста.
{
break;
}
case 8://проверяет заканчивается ли каждая строка точкой и добавляет ее при необходимости, считает сколько точек было добавлено
{
break;
}
case 9://определяет сколько раз в введенной строке встречается слово,заданное пользователем.
{
break;
}
case 10://подсчитывает количество букв в каждом втором слове.
{
break;
}
}
}
void func2 (int *x, int *buff){
switch(FUNC2){
case 1: //Подсчитывает, сколько слов начинается с последней буквы первого слова.
{
break;
}
case 2: //Подсчитывает, сколько слов имеют указанную пользователем длину.
{
break;
}
case 3: //Печатает самое длинное слово в тексте.
{
break;
}
case 4: //Подсчитывает количество знаков препинания (не букв и не цифр).
{
break;
}
case 5: //Сортирует текст в порядке возрастания
{
break;
}
case 6: // Находит слова с тире во введенном тексте.
{
break;
}
case 7: //Вычисляет количество слов между первой и последней запятой во введенном тексте
{
break;
}
case 8: //Находит два соседних слова, начинающихся с большой буквы
{
break;
}
case 9: //Сортирует строку в тексте по убыванию
{
break;
}
case 10://Заменяет в каждом слове повторяющиеся буквы на '–'
{
break;
}
}
}
void func3 (int *x, int *buff){
switch(FUNC1){
case 1: //Реверсирует слово. Пример: Привет ->тевирП
{
break;
}
case 2: //Делит слово на два и меняет начало с концом. Пример: жук -> кжу,солнце -> нцесол
{
break;
}
case 3: //После каждой гласной буквы вставляется буква 'c' и гласная повторяется. Пример: кот ->косот.
{
break;
}
case 4: //Каждая буква в слове заменяется на ее позицию в алфавите. Пример: кот ->121620, обработать только буквы.
{
break;
}
case 5: //Заменяет буквы верхнего регистра на буквы нижнего и наоборот. Пример: Привет -> пРИВЕТ.
{
break;
}
case 6: //Заменяет буквы на их двоичное представление из таблицы ASCII.Пример: кот ->101010101010111011100010
{
break;
}
case 7: /*Заменяет букву на заданное смещение в пределах алфавита (шифр
Цезаря), смещение задаётся параметром и может быть положительным или
отрицательным. Пример: кот 3 -> нсх, кот -3 -> злп*/
{
break;
}
case 8:
{
break;
}
case 9:
{
break;
}
case 10:
{
break;
}
}
}