Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <wchar.h>
- #include <stdlib.h>
- #define STD_NUM_OF_SENT 32
- #define STD_LEN_OF_SENT 32
- #define MORE_FOR_TEXT 32
- #define MORE_FOR_SENT 32
- #define TERM_CHAR L'\n'
- /* Надо сделать ввод в динамический массив целого текста, с разделением на предложения */
- /*Функция определяющая где надо закончить ввод в одно предложение*/
- int isTheEndOfSent(wchar_t T)
- {
- if (T == L'.'){
- return 1;
- } else {
- return 0;
- }
- }
- wchar_t** getText(wchar_t** mainText)
- {
- wchar_t temp;
- int firstFreeSent = 0;
- int firstFreeLetterOfSent = 0;
- int sizeOfText = STD_NUM_OF_SENT;
- int sizeOfSent = STD_LEN_OF_SENT;
- do {
- // Получаем на вход символ. В зависимости от того, какой он либо идем на следующее предложение, либо продолжаем
- wscanf(L"%c", &temp);
- wprintf(L"CHECK {%c} ", temp);
- mainText[firstFreeSent][firstFreeLetterOfSent] = temp;
- firstFreeLetterOfSent += 1;
- // Расширяем массив в случае необходимости
- if (sizeOfText == firstFreeSent)
- {
- sizeOfText += MORE_FOR_TEXT;
- mainText = (wchar_t**) realloc(mainText, sizeOfText*sizeof(wchar_t*));
- }
- if (sizeOfSent == firstFreeLetterOfSent)
- {
- sizeOfSent += MORE_FOR_SENT;
- mainText[firstFreeSent] = (wchar_t*) realloc(mainText[firstFreeSent], sizeOfSent*sizeof(wchar_t));
- }
- // Нужно ли заканчивать предложение?
- if (isTheEndOfSent(temp))
- {
- firstFreeSent += 1;
- firstFreeLetterOfSent = 0;
- sizeOfSent = STD_LEN_OF_SENT;
- }
- } while(temp != TERM_CHAR);
- return mainText;
- }
- // Попробуем сделать функцию печатающую сохраненный текст
- // ЕЩЕ НЕ ТЕСТИРОВАЛАСЬ!
- void printer(wchar_t** mainText)
- {
- for(int i = 0; mainText[i][0] != L'\0'; i++)
- {
- wprintf(L"%ls", mainText[i]);
- }
- }
- int main()
- {
- // Создадим массив для текста
- wchar_t** mainText = calloc(STD_NUM_OF_SENT, sizeof(wchar_t*));
- for (int i=0; i<STD_NUM_OF_SENT; i++)
- {
- mainText[i] = calloc(STD_LEN_OF_SENT, sizeof(wchar_t));
- }
- // Сканируем весь текст, текст разбивается на предложения согласно функции isTheEndOfSent
- mainText = getText(mainText);
- wprintf(L"\nDONE\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement