Не получается разбить строку на слова - C (СИ)
Формулировка задачи:
Подскажите пожалуйста почему не получается разбить строку на слова?
например вводим строку sdka sgad fhndn
А выводится sdka <null> <null>
Подскажите пожалуйста в чем проблема?
strcat(string," "); for (i=0; i<strlen(string); i++) if(string[i]==' ') count_space++; for (i=0; i<count_space; i++) { if(i==0) slovo=strtok(string," "); else slovo=strtok(NULL," "); printf("%s\n",slovo); }
Решение задачи: «Не получается разбить строку на слова»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(void) { char str[] = "Real Madrid Champions of Spain"; char* ptr; ptr = strtok(str, " "); while(ptr!= NULL) { printf("%s\n", ptr); ptr = strtok(NULL, " "); } }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные: str (строка) и ptr (указатель).
- В строку str[] записывается текст
Real Madrid Champions of Spain
. - Указатель ptr получает значение str.
- Функция strtok() разбивает строку на слова и возвращает указатель на первое слово.
- Если указатель не равен NULL, то это значит, что следующее слово найдено, и его можно напечатать.
- Для печати слова используется функция printf().
- Указатель ptr обновляется, чтобы указывать на следующее слово.
- Если указатель ptr равен NULL, значит все слова уже были распечатаны, и цикл завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д