Подтвердить что ты не робот

Каков символ пробела в C?

Я пытаюсь выяснить, как проверить, равен ли символ пробелу в C. Я знаю, что вкладки '\t', а строки новой строки '\n', но я хочу иметь возможность проверить только регулярное нормальное пространство (из пробела) внутри оператора if.

Кто-нибудь знает, для чего это характер?

4b9b3361

Ответ 1

Нет специального символа пробела. На самом деле это набор некоторых символов, которые обычно:

' '      space 
'\t'     horizontal tab 
'\n'     newline
'\v'     vertical tab 
'\f'     feed 
'\r'     carriage return    

Используйте isspace стандартную библиотечную функцию из ctype.h если вы хотите проверить любое из этих белых пространств.

Для всего лишь пробела используйте ' '.

Ответ 2

Символьное представление Пространства просто ' '.

void foo (const char *s)
{
    unsigned char c;
    ...
    if (c == ' ')
        ...
}

Но если вы действительно ищете все пробелы, то C имеет функцию (на самом деле это часто макрос) для этого:

#include <ctype.h>
...

void foo (const char *s)
{
    char c;
    ...
    if (isspace(c))
        ...
}

Вы можете прочитать о isspace здесь

Если вы действительно хотите поймать все непечатаемые символы, функция, которая будет использоваться, isprint из той же библиотеки. Это касается всех символов ниже 0x20 (код ASCII для пробела) и выше 0x7E (0x7f - это код для DEL, а все выше, чем расширение).

В сыром коде это эквивалентно:

if (c < ' ' || c >= 0x7f)
    // Deal with non-printing characters.

Ответ 3

Не требуется специальная escape-последовательность: вы можете просто ввести пробел непосредственно:

if (char_i_want_to_test == ' ') { 
    // Do something because it is space
}

В ASCII пространство - это код 32, поэтому вы можете указать пробел '\x20' или даже 32, но вы действительно не должны этого делать.

Кроме того, слово "пробелы" - это все, что нужно для пробела, табуляции, новой строки и всего этого. Когда вы конкретно ссылаетесь на обычный символ пробела, вы не должны использовать этот термин.

Ответ 4

Значение ASCII Space равно 32. Таким образом, вы можете сравнить ваш char с восьмеричным значением 32, которое составляет 40 или его шестнадцатеричное значение, равное 20.

if(c == '\40') { ... }

или

if(c == '\x20') { ... }

Любое число после \ считается восьмеричным, если символ сразу после \ не x, и в этом случае он считается шестнадцатеричным.

Ответ 5

использовать функцию isspace.

Функция библиотеки C int isspace (int c) проверяет, прошла ли переданная символ - это пробел.

пример кода:

    int main()
    {

       char var= ' ';

       if( isspace(var) )
       {
          printf("var1 = |%c| is a white-space character\n", var );
       }
/*instead you can easily compare character with ' '  
  */     
    }
Standard white-space characters are −

' '   (0x20)    space (SPC)
'\t'    (0x09)  horizontal tab (TAB)
'\n'    (0x0a)  newline (LF)
'\v'    (0x0b)  vertical tab (VT)
'\f'    (0x0c)  feed (FF)
'\r'    (0x0d)  carriage return (CR)

источник: учебная точка

Ответ 6

Чтобы проверить символ пробела, вы можете использовать следующий подход

if ( c == ' ' ) { /*...*/ }

Чтобы проверить пробел и/или символ табуляции (стандартные пустые символы), вы можете использовать следующий подход

#include <ctype.h>

//...

if ( isblank( c ) ) { /*...*/ }

Чтобы проверить пробел, вы можете использовать следующий подход

#include <ctype.h>

//...

if ( isspace( c ) ) { /*...*/ }