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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main()
{
 
    char str[] = "самолет = летательный аппарат";
    char words[5][256];
    char *wr = strtok(str," =");
    if (wr == NULL) return 0;
    int i=0;
    strcpy(words[i++],wr);
    while ((wr = strtok(NULL," =")) != NULL) strcpy(words[i++],wr);
 
    // print results
    for (int j=0; j<i; j++) printf("words[%d]=%s\n",j,words[j]);
 
    return 0;
}

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

В этом коде:

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

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


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

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

6   голосов , оценка 4.5 из 5
Похожие ответы