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

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

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

Подскажите пожалуйста почему не получается разбить строку на слова?
    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);
}
например вводим строку sdka sgad fhndn А выводится sdka <null> <null> Подскажите пожалуйста в чем проблема?

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

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, " "); 
    } 
}

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

В этом коде:

  1. Объявлены две переменные: str (строка) и ptr (указатель).
  2. В строку str[] записывается текст Real Madrid Champions of Spain.
  3. Указатель ptr получает значение str.
  4. Функция strtok() разбивает строку на слова и возвращает указатель на первое слово.
  5. Если указатель не равен NULL, то это значит, что следующее слово найдено, и его можно напечатать.
  6. Для печати слова используется функция printf().
  7. Указатель ptr обновляется, чтобы указывать на следующее слово.
  8. Если указатель ptr равен NULL, значит все слова уже были распечатаны, и цикл завершается.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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