Namespaces
Variants

isupper

From cppreference.net
< c ‎ | string ‎ | byte
定義先ヘッダ <ctype.h>
int isupper ( int ch ) ;

指定された文字が現在のCロケールにおいて大文字であるかどうかをチェックします。デフォルトの"C"ロケールでは、 isupper は大文字( ABCDEFGHIJKLMNOPQRSTUVWXYZ )に対してのみtrueを返します。

isupper true を返す場合、同じCロケールにおける同じ文字に対して iscntrl isdigit ispunct 、および isspace false を返すことが保証されます。

ch の値が unsigned char として表現不可能であり、かつ EOF と等しくない場合、動作は未定義です。

目次

パラメータ

ch - 分類対象の文字

戻り値

文字が大文字の場合、非ゼロの値。それ以外の場合、ゼロ。

#include <ctype.h>
#include <locale.h>
#include <stdio.h>
int main(void)
{
    unsigned char c = '\xc6'; // ISO-8859-1における文字 Æ
    printf("デフォルトのCロケールでは、\\xc6は%s大文字です\n",
           isupper(c) ? "" : "not " );
    setlocale(LC_ALL, "en_GB.iso88591");
    printf("ISO-8859-1ロケールでは、\\xc6は%s大文字です\n",
           isupper(c) ? "" : "not " );
}

出力例:

In the default C locale, \xc6 is not uppercase
In ISO-8859-1 locale, \xc6 is uppercase

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.4.1.11 isupper関数 (p: TBD)
  • C17規格 (ISO/IEC 9899:2018):
  • 7.4.1.11 isupper関数 (p: 147)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.4.1.11 isupper関数 (p: 203)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.4.1.11 isupper関数 (p: 184)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.3.1.10 isupper関数

関連項目

ワイド文字が大文字かどうかをチェックする
(関数)
**注記**: このHTMLテーブル行には翻訳対象となる自然言語のテキストが含まれていないため、元の構造と内容をそのまま保持しています。数値範囲「71–90」、エスケープシーケンス、文字列、および0/≠0の値はすべてC++関連の技術的要素であり、翻訳の対象外です。
ASCII値 文字

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

10進数 16進数 8進数
0–8 \x0 \x8 \0 \10 制御コード ( NUL など) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 タブ ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 空白文字 ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 制御コード ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 スペース 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \173 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 バックスペース文字 ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0