Идентификация следующего символа в строке является заглавной или нет - PullRequest
1 голос
/ 05 марта 2011

Я пишу программу на C ++.У меня есть массив char массив trans [20] [100].Фактически каждая строка транс является переходом грамматики (переводчики языка программирования).Я хочу проверить для каждой строки в trans, есть ли нетерминал после '.'т.е. я хочу проверить, есть ли в строках символ '.'сопровождаемый любой заглавной буквой.Может кто-нибудь подскажите пожалуйста как это сделать ??
- заранее спасибо

Ответы [ 3 ]

4 голосов
/ 05 марта 2011

Вы можете использовать любую библиотеку RegExp (например, эта ). Регулярное выражение теста: /\.[A-Z]/.

Или для строки ASCII вы можете использовать:

int strHasDotCap(const char *s)
{
    while (*s) {
        if (*s++ == '.') {
            if (*s >= 'A' && *s <= 'Z') return 1;
        }
    }
    return 0;
}
3 голосов
/ 05 марта 2011

Вы можете использовать функции в ctype.h isAlpha (), isUpper () и т. Д., Если символы имеют тип ASCII.

1 голос
/ 05 марта 2011

Если вы работаете с ASCII-символом, вы можете проверить, находится ли значение int для символа между 65 и 90. См. таблицу ASCII .

...