Чем заменить функцию isspace? - C (СИ)
Формулировка задачи:
Как можно заменить isspace в функции? Просто не до конца её понимаю, да и хотелось бы узнать, какие альтернативные варианты есть.
char *readword(FILE *f) //чтение одного слова из файла { char w[256]; char c; char*r=NULL; int i; if(!feof(f)) { do { fread(&c,1,1,f); c=sym(c); } while(!feof(f)&&isspace((unsigned char)c)); i=0; while(!feof(f)&&!isspace((unsigned char)c)); { w[i]=c; i++; fread(&c,1,1,f); c=sym(c); } w[i]=0; r = new char(strlen(w)+1); strcpy(r,w); } return r; }
Решение задачи: «Чем заменить функцию isspace?»
textual
Листинг программы
#include <string.h> #define is_space(c) ( strchr(" \t\n", (c)) )
Объяснение кода листинга программы
- Включаем заголовочный файл string.h, который содержит стандартные функции работы со строками.
- Определяем макрос is_space, который будет выполнять функцию проверки символа на принадлежность к пробельным символам.
- Внутри макроса is_space используем функцию strchr, которая ищет первое вхождение символа в строке.
- В качестве строки, в которой будем искать, указываем
\t\n
, тем самым проверяем, принадлежит ли символ пробельному символу. - Возвращаем результат работы функции strchr, т.е. найденный индекс символа или -1, если символ не найден.
- Если символ найден, то возвращаем ненулевое значение, иначе возвращаем 0 (ноль).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д