Как разделить строку на слова и присвоить значение - 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;
}
Объяснение кода листинга программы
В этом коде:
- Объявляется строка
strс исходной строкойсамолет = летательный аппарат. - Объявляется массив
wordsразмером 5, предназначенный для хранения до 5 слов. - Используется функция
strtokдля разделения исходной строки на слова. - Результат первого разделения записывается в
words[0]. - С помощью цикла
whileиstrtokкаждое последующее слово записывается в следующий элемент массиваwords. - С помощью цикла
forвсе слова выводятся на экран. - Код завершается, возвращая 0.