m
This commit is contained in:
Regular → Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
gcc -std=c99 -Wall main.c func.c -o prog
|
||||||
|
|||||||
+69
-15
@@ -2,30 +2,34 @@
|
|||||||
|
|
||||||
int buffinput(int *x, int *inbuff, int *buff){
|
int buffinput(int *x, int *inbuff, int *buff){
|
||||||
setlocale(LC_ALL, "");
|
setlocale(LC_ALL, "");
|
||||||
|
|
||||||
//INPUT-------------------------------------------------
|
//INPUT-------------------------------------------------
|
||||||
wint_t ch;
|
wint_t ch;
|
||||||
*inbuff = 0;
|
*inbuff = 0;
|
||||||
while((ch=getwchar())!='\n'&&*inbuff<BUFFMAX){
|
while((ch=getwchar())!='\n'&&ch!=' '&&*inbuff<BUFFMAX){
|
||||||
*(buff+*inbuff)=(int)ch;
|
*(buff+*inbuff)=(int)ch;
|
||||||
(*inbuff)++;
|
(*inbuff)++;
|
||||||
}
|
}
|
||||||
//______________________________________________________
|
//______________________________________________________
|
||||||
|
if(ch=='\n')x[2]++;
|
||||||
|
else if(ch=='\t')x[3]++;
|
||||||
|
else if(ch==' ')x[4]++;
|
||||||
|
|
||||||
|
|
||||||
//COUNT -------------------------------------------------
|
//COUNT -------------------------------------------------
|
||||||
int c=0;
|
int c=0;
|
||||||
for(int i = 32;i<=64;i++){
|
// [0]-symb [1]-num [2]-\n [3]-\t [4]-' ' [5].. 33-64
|
||||||
|
for(int i = 33;i<=64;i++){
|
||||||
if(
|
if(
|
||||||
('а'<=&&>='я') ||
|
('а'<=&&>='я') ||
|
||||||
('А'<=&&>='Я')
|
('А'<=&&>='Я')
|
||||||
){x[0]++;c++;continue;}
|
){x[0]++;c++;continue;}
|
||||||
|
|
||||||
else if('0'>=buff[c]&&buff[c]<='9'){x[1]++;continue;}
|
else if('0'>=buff[c]&&buff[c]<='9'){x[1]++;continue;}
|
||||||
|
else if(buff[c]=='\t'){x[3]++}
|
||||||
|
else if(buff[c]==i){x[i-28]++;c++;continue;};
|
||||||
|
|
||||||
else if(buff[c]==i){x[i-30];c++;continue;};
|
else {x[25]++;c++;}
|
||||||
|
|
||||||
else {x[23]++;c++;}
|
|
||||||
}
|
}
|
||||||
//________________________________________________________
|
//________________________________________________________
|
||||||
|
|
||||||
@@ -34,44 +38,81 @@ int buffinput(int *x, int *inbuff, int *buff){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void func1 (int *x, int *buff){
|
void func1 (char *f, int *x,int inbuff, int *buff){
|
||||||
switch(FUNC1){
|
printf("\nFunc output:");
|
||||||
|
switch(f[3]){
|
||||||
case 1://Определяет среднюю длину слова в тексте
|
case 1://Определяет среднюю длину слова в тексте
|
||||||
{
|
{
|
||||||
|
if(x[28]){
|
||||||
|
x[30]/=x[29];
|
||||||
|
printf("\n\tСредняя длинна слова - %d",x[30]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
x[30]+=inbuff;
|
||||||
|
x{29}++;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 2://Подсчитывает количество слов, длина которых не превышает 5 символов.
|
case 2://Подсчитывает количество слов, длина которых не превышает 5 символов.
|
||||||
{
|
{
|
||||||
|
if(x[28]){
|
||||||
|
printf("\n\tВсего слов <5 букв - %d",x[30]);
|
||||||
|
}
|
||||||
|
else if(inbuff<5)x[30]++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 3://Определяет количество букв после первого и до последнего слова.
|
case 3://Определяет количество букв после первого и до последнего слова.
|
||||||
{
|
{
|
||||||
|
if(x[29]);
|
||||||
|
else {x[30]-=x[0];x[29]=1;}
|
||||||
|
if(x[28]){x[30]+=x[0];printf{"\n\tКолл-во букв после 1 и до последнего слова - %d",x[30]}}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 4://Удаляет первую букву каждого слова и выводит результат.
|
case 4://Удаляет первую букву каждого слова и выводит результат.
|
||||||
{
|
{
|
||||||
|
for(int i = 1;i<inbuff;i++){
|
||||||
|
putwchar(buff[i]);
|
||||||
|
}
|
||||||
|
if(x[2]!=x[30])putwhcar{'\n'};
|
||||||
|
if(x[3]!=x[29])putwhcar{'\t'};
|
||||||
|
if(x[4]!=x[27])putwhcar{' '};
|
||||||
|
x[30]=x[2];
|
||||||
|
x[29]=x[3];
|
||||||
|
x[27]=x[4];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 5://определяет, сколько в заданном тексте слов, начинающихся с буквы,заданной пользователем.
|
case 5://определяет, сколько в заданном тексте слов, начинающихся с буквы,заданной пользователем.
|
||||||
{
|
{
|
||||||
|
if[x[28]]
|
||||||
|
printf("\n\t - %d",x[30]);
|
||||||
|
else
|
||||||
|
if(buff[0]==f[4])x[30]++;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 6://находит сумму всех цифр в введенном предложении. (если в тексте нетцифр, добавить) предусмотреть обработку шаблонов (12word, wo12rd,word12)
|
case 6://находит сумму всех цифр в введенном предложении. (если в тексте нетцифр, добавить) предусмотреть обработку шаблонов (12word, wo12rd,word12)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 7:// вставляет восклицательный знак в конце каждой строки текста.
|
case 7:// вставляет восклицательный знак в конце каждой строки текста.
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 8://проверяет заканчивается ли каждая строка точкой и добавляет ее при необходимости, считает сколько точек было добавлено
|
case 8://проверяет заканчивается ли каждая строка точкой и добавляет ее при необходимости, считает сколько точек было добавлено
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 9://определяет сколько раз в введенной строке встречается слово,заданное пользователем.
|
case 9://определяет сколько раз в введенной строке встречается слово,заданное пользователем.
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 10://подсчитывает количество букв в каждом втором слове.
|
case 10://подсчитывает количество букв в каждом втором слове.
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@@ -80,8 +121,8 @@ void func1 (int *x, int *buff){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void func2 (int *x, int *buff){
|
void func2 (int *f, int *x,int inbuff, int *buff){
|
||||||
switch(FUNC2){
|
switch(f[3]){
|
||||||
case 1: //Подсчитывает, сколько слов начинается с последней буквы первого слова.
|
case 1: //Подсчитывает, сколько слов начинается с последней буквы первого слова.
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@@ -126,8 +167,8 @@ void func2 (int *x, int *buff){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void func3 (int *x, int *buff){
|
void func3 (int *f, int *x,int inbuff, int *buff){
|
||||||
switch(FUNC1){
|
switch(f[3]){
|
||||||
case 1: //Реверсирует слово. Пример: Привет ->тевирП
|
case 1: //Реверсирует слово. Пример: Привет ->тевирП
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@@ -158,17 +199,30 @@ void func3 (int *x, int *buff){
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8:
|
case 8: //Делит слово на два и оставляет большую часть. Пример: жук -> к, солнце -> сол
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 9:
|
case 9: //Делит слово на два и оставляет меньшую часть. Пример: жук -> жу, солнце -> нце
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 10:
|
case 10://Превращает русский текст в транслит русского текста. Пример кот ->kot, жук -> zhuk
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void count(int *x){
|
||||||
|
int sum = 0;
|
||||||
|
printf("\nStatistic");
|
||||||
|
printf("\n\t \"Symb\" - [ammount]\n");
|
||||||
|
printf("\n\t \"\\n\" - [%d]");
|
||||||
|
printf("\n\t \"\\t\" - [%d]");
|
||||||
|
printf("\n\t \" \" - [%d]");
|
||||||
|
for(int i=33;i<=64;i++)
|
||||||
|
if(x[i-28]>10){printf("\n\t\"%ls\" - [%d]"),i,x[i];}
|
||||||
|
else sum+=x[i-30];
|
||||||
|
printf("\n\t other - [%d]",sum);
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,23 +4,26 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
|
||||||
|
|
||||||
// GET
|
// GET
|
||||||
int buffinput(int *x, int *inbuf, int *buff);
|
int buffinput(int *x, int *inbuf, int *buff);
|
||||||
|
|
||||||
|
|
||||||
// FUNC
|
// FUNC
|
||||||
void func1();
|
void func1(int f, int *x, int inbuff, int *buff);
|
||||||
|
|
||||||
void func2();
|
void func2(int f, int *x, int inbuff, int *buff);
|
||||||
|
|
||||||
void func3();
|
void func3(int f, int *x, int inbuff, int *buff);
|
||||||
|
|
||||||
|
void count(int *x);
|
||||||
|
|
||||||
|
|
||||||
// DEFINE
|
// DEFINE
|
||||||
#define clear; printf("\n \033[H\033[J \n");
|
#define clear; printf("\n \033[H\033[J \n");
|
||||||
|
|
||||||
#define BUFFMAX 20
|
#define BUFFMAX 20
|
||||||
#define XMAX 23
|
#define XMAX 31
|
||||||
|
|
||||||
#define FUNC1 3
|
#define FUNC1 3
|
||||||
#define FUNC2 8
|
#define FUNC2 8
|
||||||
|
|||||||
@@ -3,7 +3,41 @@
|
|||||||
int main(int argc, char *argv[]){
|
int main(int argc, char *argv[]){
|
||||||
int buff[BUFFMAX];
|
int buff[BUFFMAX];
|
||||||
int x[XMAX];
|
int x[XMAX];
|
||||||
|
for (int i = 0;i<XMAX;i++)x[i]++;
|
||||||
|
|
||||||
|
if (argc < 3) {
|
||||||
|
printf("Not enough arguments. (-help)\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(argv[2]=="-help"||argv[2]=="-h"){kk
|
||||||
|
printf("\nHelpMenu");
|
||||||
|
printf("\n\tprog [arg1] [arg2] [arg3]");
|
||||||
|
printf("\n\t[arg1] - Block of func");
|
||||||
|
printf("\n\t[arg2] - Func num");
|
||||||
|
printf("\n\t[arg3] - Func input");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch(argv[2]){
|
||||||
|
case 1:
|
||||||
|
while(buffinput!=-1)
|
||||||
|
func1(argv,x,inbuff,buff);
|
||||||
|
x[28]=1;
|
||||||
|
func1(argv,x,inbuff,buff);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
while(buffinput!=-1)
|
||||||
|
func2(argv,x,inbuff,buff);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
while(buffinput!=-1)
|
||||||
|
func3(argv,x,inbuff,buff);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
count(x);}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user