検索
連載

【問題11】文字列の長さと文字種類の判別完全マスター! 組み込みC言語プログラミング(12)(3/4 ページ)

C言語を使ったマイコン制御プログラムの“イロハ”を解説する本連載。複数条件を満たすパスワード確認プログラムを通じて、複数関数の使い方とフラグの立て方を学びます。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

文字種別の判定

 前回、文字cが英小文字であるか判定するには、

c >= 'a' && c <= 'z'

 のように書けると説明しました。つまり英小文字はaからzまでのいずれかの文字というわけです。

 しかし、C言語には文字種別を判定する便利な関数が用意されていて、cが英小文字であるかは

islower(c)

 とも書けます。

 islowerは文字コードを隠蔽するので、今後はislowerを使ったほうがよいでしょう。

 islowerのように文字種別を判定する、名前がisで始まる関数は、Cの標準関数でいくつか用意されていて、これらの関数は引数cが関数で規定する値に限り、0以外の値(真)を返します。

文字種別を判定する標準関数
関数 機能
int isalnum(int c); cは英字または数字である。
int isalpha(int c); cは英字である。
int iscntrl(int c); cが制御文字である。
int isdigit(int c); cが数字である。
int isgraph(int c); cがスペースを除く表示可能文字である。
int islower(int c); cが英小文字である。
int isprint(int c); cが表示可能文字(スペースを含む)である。
int isspace(int c); cが白類文字(スペース、タブ、改行など)である。
int isupper(int c); cが英大文字である。
int isxdigit(int c); cが16進文字(数字またはaからf、またはAからF)である。

 これらの関数を使うときには、ctype.hをインクルードしなければなりません。

 ちなみに、ctype.hには文字の変換関数も用意されていて、英小文字のcを英大文字に変換する

c = c - 'a' + 'A';

 は、

c = toupper(c);

 とも書けます。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る