Чем заменить функцию 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)) )

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

  1. Включаем заголовочный файл string.h, который содержит стандартные функции работы со строками.
  2. Определяем макрос is_space, который будет выполнять функцию проверки символа на принадлежность к пробельным символам.
  3. Внутри макроса is_space используем функцию strchr, которая ищет первое вхождение символа в строке.
  4. В качестве строки, в которой будем искать, указываем \t\n, тем самым проверяем, принадлежит ли символ пробельному символу.
  5. Возвращаем результат работы функции strchr, т.е. найденный индекс символа или -1, если символ не найден.
  6. Если символ найден, то возвращаем ненулевое значение, иначе возвращаем 0 (ноль).

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


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

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

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