Разбить строку на слова - Нулевая длина строки 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 элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д