Разбить строку на слова - Нулевая длина строки 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=""; //Что тут должно быть?
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Выводится строка с помощью функции printf().
- Переменной
oneWord
присваивается пустая строка, т.е. `` (нулевая длина строки char* ). В данном коде нет действий с числами, поэтому список не превышает 20 элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д