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

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

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

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

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

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

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

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

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

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


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

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

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы