После использования функции strtok, как обращаться к лексемам? - C (СИ)

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

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

После использования функции strtok, как мне обращаться к лексемам? Допустим разбил я предложение мама мыла раму на 3 слова, теперь мне нужно сравнить первое и второе слово, одинаковые ли они? Как это реализовать?

Решение задачи: «После использования функции strtok, как обращаться к лексемам?»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #define DELIM " .,;:\n\t"
  5. #define N 1024
  6.  
  7. void Strtok(char *s, char **a, int *pn)
  8. {
  9.     char *token;
  10.     for(*pn = 0, token = strtok(s, DELIM); token != NULL; token = strtok(NULL, DELIM))
  11.     {
  12.         a[*pn] = (char *)malloc((strlen(token) + 1) * sizeof(*token));
  13.         strcpy(a[(*pn)++], token);
  14.     }
  15. }
  16.  
  17. void Print(char **a, int n)
  18. {
  19.     int i;
  20.     for(i = 0; i < n; i++)
  21.         puts(a[i]);
  22. }
  23.  
  24. int main( )
  25. {
  26.     char s[N], *a[N];
  27.     int n;
  28.     fgets(s, N, stdin);
  29.     Strtok(s, a, &n);
  30.     Print(a, n);
  31.     return 0;
  32. }

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

  1. Включаются необходимые заголовочные файлы
  2. Определяется строка-разделитель и её длина
  3. Определяется количество элементов в массиве
  4. В функции Strtok инициализируется указатель на первый элемент в строке s
  5. В цикле происходит разделение строки s на токены с помощью функции strtok и сохранение их в массиве a
  6. В функции Print происходит вывод элементов массива a на экран
  7. В функции main считывается строка с помощью fgets, вызывается функция Strtok для разделения строки на токены и сохранения их в массиве a, затем вызывается функция Print для вывода элементов массива на экран
  8. Код не содержит обработку ошибок, в том числе проверку на достаточность памяти для выделения массива a

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


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

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

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы