1

私はC++プログラムを書いています。char配列trans[20][100]の配列があります。実際、transの各文字列は、文法(プログラミング言語トランスレータ)の遷移です。トランスの各文字列で、「。」の後に非終端記号があるかどうかを確認したいと思います。つまり、文字列に「。」があるかどうかを確認したいのです。大文字が続きます。誰か教えてもらえますか?
-前もって感謝します

4

3 に答える 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 に答える