Как разделить строку на слова и присвоить значение - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д