Ошибка! - C (СИ)

Узнай цену своей работы

Формулировка задачи:

У меня почему-то strtok требует какое-то выражение...что это может ззначить?Выручайте!!!

Решение задачи: «Ошибка!»

textual
Листинг программы
char** text = NULL;
    char r[] = "\n\t ,.!?\r";
    int flag1, flag2, flag3, flag4;
    flag1 = 0; flag2 = 0; flag3 = 0;
    flag4 = 0;
    char m,*w;
    int k = 0,n = 0;
    while (1)
    {
        system("cls");
        puts("0. Help \n1. Enter the input text \n2. Show the output text\n3. Exit\n\n\nInput: \n");
        m = getchar();
        switch (m)
        {
        case '0':
            system("cls");
            help();
            getchar();
            break;
        case '1':
            system("cls");
            text = svoboda_text(text, k);
            puts("\n\nEnd of the text is string \"TAB\"\n");
            text = vvod_texta(&k);
            flag1 = 1;
            break;
 
        case '2':
            system("cls");
            if (flag1 == 1)
            {
                printf("\nVuvod texta:\n");
                vyvod_texta(text, k);
            }
            else
                printf("\nText ne vveden!\n\n");
            system("pause");
            break;
        case '3':
            system("cls");
            printf("\nFormat new text:\n");
            if (flag1 == 1)
            {
                w = strtok(text*,r);
                while (w)
                    n += strlen(w) & 1, w = strtok(0, r);
            }
        }
    }
}

Объяснение кода листинга программы

  1. text - указатель на указатель строк, инициализированный значением NULL. В данном случае он используется для хранения введенного пользователем текста.
  2. r - строка, содержащая символы, которые используются в качестве разделителей.
  3. flag1, flag2, flag3, flag4 - флаги, которые используются для контроля различных условий в программе.
  4. m - текущий символ, введенный пользователем.
  5. w - указатель на текущую подстроку, которая извлекается из текста с помощью функции strtok.
  6. k - счетчик количества введенных строк.
  7. n - счетчик количества символов в текущей подстроке.
  8. В цикле while(1) происходит:
    • Очистка экрана с помощью функции system(cls).
    • Вывод меню выбора на экран с помощью функции puts.
    • Считывание введенного пользователем символа с помощью функции getchar.
    • Выбор соответствующего действия в зависимости от введенного символа с помощью оператора switch.
  9. При выборе действия '1' происходит:
    • Очистка экрана с помощью функции system(cls).
    • Вывод строки End of the text is string \TAB`\n` на экран.
    • Присваивание указателю text значения, возвращаемого функцией svoboda_text, которая добавляет в текст новый символ.
    • Вызов функции vvod_texta, которая считывает строку, введенную пользователем, и добавляет ее в конец текста.
    • Установка флага flag1 в значение 1.
  10. При выборе действия '2' происходит:
    • Очистка экрана с помощью функции system(cls).
    • Проверка значения флага flag1. Если оно равно 1, то выводится введенный текст на экран с помощью функции vyvod_texta.
    • Если значение флага flag1 не равно 1, то выводится сообщение Text ne vveden!\n\n.
    • Вызов функции system(pause) для ожидания нажатия клавиши пользователем.
  11. При выборе действия '3' происходит:
    • Очистка экрана с помощью функции system(cls).
    • Вывод сообщения Format new text:\n на экран.
    • Проверка значения флага flag1. Если оно равно 1, то происходит разделение текста на подстроки с помощью функции strtok и вычисление длины каждой подстроки с использованием операции & 1.
    • Если значение флага flag1 не равно 1, то выводится сообщение Text ne vveden!\n\n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5