Разбить строку на слова - Нулевая длина строки char* - C (СИ)

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

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

Добрый день! Пытаюсь в цикле считать из файла, содержащего такую строку "fga b qwee", так, чтобы разбить это все дело на три отдельных слова. Считываю посимвольно, отслеживаю конец файла, пробельные символы и знаки пунктуации. Если считанный символ таковым не является, то прибавляю его к переменной oneWord. Если встречается пробельный символ, то хочу обнулить переменную oneWord (то есть было равно "fga", а должно стать просто пусто: ""). Но не знаю, как это сделать корректно. Если оставить, как есть, то при считывании следующего слова, состоящего из 1 символа "b", программа выведет "bga", что и логично.Подскажите, пожалуйста, можно как-то одной строчкой сделать так, чтобы длина массива опять стала 0 ?
   
        int index=0;
        char ch=getc(f);
        char *oneWord=(char*)malloc(15*sizeof(char*));
        while(ch!=EOF){
            while(!(isspace(ch)) && !(ispunct(ch))){
                if(ch==EOF) break;
                oneWord[index]+=ch;
                index++;
                ch=getc(f);
            }
            printf("%s\n",oneWord);
            *oneWord=""; //Что тут должно быть?
            ch=getc(f);
            index=0;
        }

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

textual
Листинг программы
printf("%s\n",oneWord);
oneWord=""; //Что тут должно быть?

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

В данном коде выполняется следующие действия:

  1. Выводится строка с помощью функции printf().
  2. Переменной oneWord присваивается пустая строка, т.е. `` (нулевая длина строки char* ). В данном коде нет действий с числами, поэтому список не превышает 20 элементов.

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


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

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

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