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