Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
17.04.2015
Размер:
4.24 Кб
Скачать
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

#define N 5

int spaces[N];

char* mas[N] = {  "V cheshue, kak jar gorya,\0",
		 		 "Tridcat tri bogatyrya,\0",
                 "Vse krasavcy udalye,\0",
                 "Velikany molodye,\0",
                 "Vse ravny,kak na podbor,\0h",
                 };

void out_strings(char* mas[]);
void out_strings(char mas[N][40]);
int find_lit_upper(char* mas[]);
int find_lit_sep(char* mas[]);
void find_spaces_in_strings(char* mas[],int spaces[]);
void find_dots_in_strings(char* mas[],int spaces[]);
void sort_text(char* mas[],char mas1[N][40],int spaces[]);

int main()
{
  char mas1[N][40];
  out_strings(mas);
  int k = find_lit_upper(mas);
  printf("Chislo zaglavnyh bukv %d\n",k);
  find_dots_in_strings(mas,spaces);
  printf("Kolichesrvo tochek v tekste:\n");
  for(int i = 0;i < N;i++)
  {
	  printf("%d",spaces[i]);
  }
  find_spaces_in_strings(mas,spaces);
  sort_text(mas,mas1,spaces);
  out_strings(mas1);
  getch();
  return 0;
}

void out_strings(char* mas[])
{
	printf("======================================\n");
    printf("======================================\n");
    printf("======================================\n");
        for(int i = 0;i < N;i++)
        {
        	printf("***  ");
         	printf("%s",mas[i]);
            int s = strlen(mas[i]) + 4;
            s = 31 - s;
            for (int j = 0;j < s;j++)
               printf(" ");
              printf("   ***\n"); 
        }
      	printf("======================================\n");
        printf("======================================\n");
        printf("======================================\n");
}

void out_strings(char mas[N][40])
{
	printf("======================================\n");
    printf("======================================\n");
    printf("======================================\n");
        for(int i = 0;i < N;i++)
        {
        	printf("***  ");
         	printf("%s",mas[i]);
            int s = strlen(mas[i]) + 4;
            s = 31 - s;
            for (int j = 0;j < s;j++)
               printf(" ");
              printf("   ***\n"); 
        }
      	printf("======================================\n");
        printf("======================================\n");
        printf("======================================\n");
}

int find_lit_upper(char* mas[])
{
    int k = 0,i = 0,j = 0;
    for(i = 0; i < N;i++)
    {
       j = 0;
       while(mas[i][j] != '\0')
       {
         if (isupper(mas[i][j]))
           k++;
         j++;
       }
    }
    return k;
}

int find_lit_sep(char* mas[])
{
    int k = 0,i = 0,j = 0;
    for(i = 0; i < N;i++)
    {
       j = 0;
       while(mas[i][j] != '\0')
       {
         if (mas[i][j] == '.')
           k++;
         j++;
       }
    }
    return k;
}

void find_spaces_in_strings(char* mas[],int words[])
{
	int i,j,k;
	for(i = 0;i < N;i++)
        {
        	k = 0;
        	j = 0;
        	while(mas[i][j] != '\0')
                {
                	if (mas[i][j] == ' ')
                		k++;
	                 j++;
                }
                words[i] = k;
	}
}

void find_dots_in_strings(char* mas[],int words[])
{
	int i,j,k;
	for(i = 0;i < N;i++)
        {
        	k = 0;
        	j = 0;
        	while(mas[i][j] != '\0')
                {
                	if (mas[i][j] == '.')
                		k++;
	                 j++;
                }
                words[i] = k;
	}
}

void sort_text(char* mas[],char mas1[N][40],int spaces[])
{
	int temp;
        char buffer[120];
		for(int i = 0;i < N ;i++)
		{
			strcpy(mas1[i],mas[i]);
		}
        for (i = 0;i < N - 1;i++)
        {
          for(int j = N - 2;j >= i;j--)
          {
              if (spaces[j] > spaces[j+1])
              {
                 temp = spaces[j];
                 spaces[j] = spaces[j+1];
                 spaces[j+1] = temp;

                 strcpy(buffer,mas1[j]);
                 strcpy(mas1[j],mas1[j+1]);
                 strcpy(mas1[j+1],buffer);
	      }
          }
         }
}
Соседние файлы в папке Лабораторные