识别字符串中的下一个字符是否为大写字母

时间:2011-03-05 12:51:22

标签: c++ string char compiler-theory

我正在编写一个C ++程序。我有一个char数组trans [20] [100]的数组。实际上,每个trans字符串都是语法的转换(编程语言翻译器)。我想检查每个字符串是否在'。'之后是否有非终端。即我想检查字符串中是否有'。'随后是任何大写字母。谁能告诉我怎么做? - 提前谢谢

3 个答案:

答案 0 :(得分:4)

您可以使用任何RegExp库(例如this one)。测试正则表达式为/\.[A-Z]/

或者您可以使用ASCII字符串:

int strHasDotCap(const char *s)
{
    while (*s) {
        if (*s++ == '.') {
            if (*s >= 'A' && *s <= 'Z') return 1;
        }
    }
    return 0;
}

答案 1 :(得分:3)

如果字符是ASCII类型,您可以使用ctype.h中的函数isAlpha(),isUpper()等。

答案 2 :(得分:1)

如果您使用ASCII char,那么您可以测试char的int值是否介于65和90之间。请参阅the ASCII table