175 lines
6.2 KiB
C
175 lines
6.2 KiB
C
#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;
|
||
}
|
||
}
|
||
}
|