Ввод до несловесного символа в C, как в Java \ W - PullRequest
1 голос
/ 17 апреля 2011

Я хочу ввести слова из файла, которые разделены чем-то, что не является буквой.Есть ли простой способ сделать это в C, похожий на использование предопределенных классов символов \ W в Java?

Как мне подойти к этому?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 17 апреля 2011

Вы можете использовать fscanf (при условии, что вам гарантирована максимальная длина слова)

char temp_str[1000];
char temp_w[1000]
while(fscanf(file, "%[a-zA-Z]%[^a-zA-Z]", temp_str, temp_w) != EOF) {
  printf("STR: %s\n", temp_str);
}

Редактировать: это должно сработать, temp_str будет содержать последовательность букв, а temp_w будет содержать символы-разделители между

0 голосов
/ 17 апреля 2011

Классы символов в целом и \ W, в частности, действительно не имеют никакого отношения к Java.Они являются лишь частью поддержки регулярных выражений, которая доступна для многих языков, включая GNU C. См. Библиотека GNU C Регулярные выражения .

0 голосов
/ 17 апреля 2011

Вы можете использовать семейство функций is_, определенных в <ctype.h>.

Например, isalpha() скажет вам, является ли что-то буквенным символом.isspace() скажет вам, если что-то пустое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...