Не получается разбить строку на слова - 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, значит все слова уже были распечатаны, и цикл завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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