2015-02-22 3 views
0

Когда я пытаюсь скомпилировать свою программу на C с помощью cc, я получаю предупреждение о том, что у меня есть неявное объявление функции isspace. Разве это не часть стандартной библиотеки C? Какой импорт мне нужно сделать, чтобы моя функция работала правильно?Что мне нужно сделать, чтобы функция isspace работала в C

Большое спасибо за помощь!

Приветствия

+0

Вы включили 'ctype.h'? – haccks

+0

Что такое ctype.h? Нужно ли мне делать импорт? Спасибо за помощь! – JJJack

+0

Его заголовочный файл, содержащий декларацию 'isspace'. – haccks

ответ

3

Вам нужно #include <ctype.h>.

Однако убедитесь, что вы внимательно прочитали документацию. Его интерфейс неинтуитивный, по историческим причинам.

Он предназначен для работы только со значением от 0 до UCHAR_MAX (обычно 255) - тот же тип значения, который возвращается функцией getchar(). Например:

int ch = getchar(); 
if (isspace(ch)) 

Не используйте его с char. Если у вас есть char, который вы хотите проверить на пробел, он должен быть преобразован в ожидаемый диапазон; например броском к (unsigned char):

char ch = 't'; 
if (isspace((unsigned char)ch)) 

То же самое касается всех остальных is* функций в ctype.h