我正在编写一个 C++ 程序。我有一个 char 数组 trans[20][100] 数组。实际上,每个 trans 字符串都是语法的转换(编程语言翻译器)。我想检查 trans 中的每个字符串在“。”之后是否有非终端。即我想检查字符串中是否有'。' 后跟任何大写字母。谁能告诉我该怎么做??
-提前致谢
问问题
2331 次
3 回答
4
您可以使用任何 RegExp 库(例如这个)。测试正则表达式是/\.[A-Z]/
.
或者对于 ASCII 字符串,您可以使用:
int strHasDotCap(const char *s)
{
while (*s) {
if (*s++ == '.') {
if (*s >= 'A' && *s <= 'Z') return 1;
}
}
return 0;
}
于 2011-03-05T13:02:39.460 回答
3
如果字符是 ASCII 类型,您可以使用 ctype.h isAlpha()、isUpper() 等中的函数。
于 2011-03-05T14:24:49.597 回答
1
如果您对 ASCII char 进行操作,则可以测试 char 的 int 值是否在 65 到 90 之间。请参阅ASCII 表。
于 2011-03-05T13:03:32.990 回答