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