Как разделить строку на слова и присвоить значение - C (СИ)

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

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

Подскажите пожалуйста Хотела поделить строку на слова и присвоить разделенные значения но не получается почему так не работает?
Листинг программы
  1. char str[] = "самолет = летательный аппарат";
  2. char *sp;
  3. sp = strtok(str, "=");
  4. chaineCar1 = sp[0];
  5. chaineCar2 = sp[1];
и вот так тоже пыталась
Листинг программы
  1. char str[] = "самолет = летательный аппарат";
  2. char *sp;
  3. int i, j;
  4. for(i = 0, j=0; str[i]!='\0'; i++, j++){
  5. if((str[i] != '=')&& (flag == 0)){
  6. chaineCar1[j] += buf[i];
  7. }
  8. else {flag == 1;
  9. chaineCar2[j] += buf[i+1];}}

Решение задачи: «Как разделить строку на слова и присвоить значение»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. int main()
  7. {
  8.  
  9.     char str[] = "самолет = летательный аппарат";
  10.     char words[5][256];
  11.     char *wr = strtok(str," =");
  12.     if (wr == NULL) return 0;
  13.     int i=0;
  14.     strcpy(words[i++],wr);
  15.     while ((wr = strtok(NULL," =")) != NULL) strcpy(words[i++],wr);
  16.  
  17.     // print results
  18.     for (int j=0; j<i; j++) printf("words[%d]=%s\n",j,words[j]);
  19.  
  20.     return 0;
  21. }

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

В этом коде:

  1. Объявляется строка str с исходной строкой самолет = летательный аппарат.
  2. Объявляется массив words размером 5, предназначенный для хранения до 5 слов.
  3. Используется функция strtok для разделения исходной строки на слова.
  4. Результат первого разделения записывается в words[0].
  5. С помощью цикла while и strtok каждое последующее слово записывается в следующий элемент массива words.
  6. С помощью цикла for все слова выводятся на экран.
  7. Код завершается, возвращая 0.

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


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

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

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

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

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

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