Составление спецификаций. Изучение строковых типов данных и функций для их обработки, страница 7

       if(slovo()) cout<<" Первая и последняя буква одинаковая. "<<endl;

       else  cout<<" Первая и последняя буква неодинаковая. "<<endl;

       cout<<"Ответ на второе задание:";

       cout<<" Количество букв 'о' в предложении = "<<Predl()<<endl;

       cout<<"Ответ на третье задание:";

       Zamena();

       cout<<" Измененное предложение:  "<<c<<endl;

       cout<<"Ответ на четвертое задание:";

       cout<<" Количество цифр в преложении = "<<Kolvo()<<endl;

}

void Cstring::InputData(void)//заполнение с клавиатуры

{

       cout<<"Введите текст к первому заданию:"<<endl;

       a=Read1();//пропускаеться программой

       a=Read1();

       cout<<"Введите текст к второму заданию:"<<endl;

       b=Read1();

       cout<<"Введите текст к третьему заданию:"<<endl;

       c=Read1();

       cout<<"Введите текст к четвертому заданию:"<<endl;

       d=Read1();

}

void Cstring::SaveToFile(char* FileName)

{

       //запись в файл

       ofstream f(FileName);

       f<<"Ответ на первое задание:";

       if(slovo()) f<<" Первая и последняя буква одинаковая. "<<endl;

       else  f<<" Первая и последняя буква неодинаковая. "<<endl;

       f<<"Ответ на второе задание:";

       f<<" Количество букв 'о' в предложении = "<<Predl()<<endl;

       f<<"Ответ на третье задание:";

       f<<" Измененное предложение:  "<<c<<endl;

       f<<"Ответ на четвертое задание:";

       f<<" Количество цифр в преложении = "<<Kolvo()<<endl;

       f.close();

}

void Cstring::ReadFromFile(char* FileName)

{

       // заполнение с файла

             ifstream f(FileName);

   int  str_sizeA = 0,str_sizeB = 0,str_sizeC = 0,str_sizeD = 0,K=1;

   char ch;

       a = (char *) calloc(str_sizeA, sizeof(char));//выделяем память

       b = (char *) calloc(str_sizeB, sizeof(char));//выделяем память

       c = (char *) calloc(str_sizeC, sizeof(char));//выделяем память

       d = (char *) calloc(str_sizeD, sizeof(char));//выделяем память

  while (!f.eof())

  {

       f.unsetf(ios_base:: skipws);

       f>>ch;

       if(int(ch)==10) K++;

       switch(K)

       {

       case 1: {a = (char *) realloc(a, ++str_sizeA);

                     a[ str_sizeA - 1 ] = int(ch); break;}//выделяем память и записываем значение

       case 2: {b = (char *) realloc(b, ++str_sizeB);

                     b[ str_sizeB - 1 ] = int(ch); break;}//выделяем память и записываем значение

       case 3: {c = (char *) realloc(c, ++str_sizeC);

                     c[ str_sizeC - 1 ] = int(ch); break;}//выделяем память и записываем значение

       case 4: {d = (char *) realloc(d, ++str_sizeD);

                     d[ str_sizeD - 1 ] = int(ch); break;}//выделяем память и записываем значение

       }

  }

       a = (char *) realloc(a, ++str_sizeA);

       b = (char *) realloc(b, ++str_sizeB);

       c = (char *) realloc(c, ++str_sizeC);

       d = (char *) realloc(d, ++str_sizeD);

       a [ str_sizeA - 1 ] = '\0';//ставим конец строки

       b [ str_sizeB - 1 ] = '\0';//ставим конец строки

       c [ str_sizeC - 1 ] = '\0';//ставим конец строки

       d [ str_sizeD - 1 ] = '\0';//ставим конец строки

       f.close();//закрываем строку

}

Cstring::~Cstring(void)

{

       delete a,b,c,d;

}

            Lab 6_.cpp

// Lab 6_.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include "Calc.h"

#include "Struct.h"