NOEMBLEM/エンブレムが設定されていません。

メールの詳細(メール表示)

件名:

Re: 数字、英大文字、英小文字の判別

差出人: FUJIHARA Keiichiさん
送信日時 2003/12/26 10:34
ML.NO [beginers:0391]
本文:

藤原と申します。
From: のアドレスを間違えていたので(2回も)
改めて。

This message is reply to sawayaid - san
(Subject was : [beginers:0385]数字、英大文字、英小文字の判別)

Message-ID: <2029901.1072354406852@…>
in Thu, 25 Dec 2003 21:13:26 +0900 (JST) ...

> この春からプログラマーになるC初心者です。よろしくお願いします。
>
> ある文字列の中に、数字、英大文字、英小文字があります。これらを判別した
> いのです。アスキーコードから判定しようかと思うのですが、文字をアスキー
> コードにする方法がわかりません。教えてください。

本当は、島倉さんがお書きの通り、 is〜 という関数を使うのがベストです。

ただテクニックとしては、文字の判定は(見かけ上でも)文字でやるのもいい
方法です。

char c; に対して、

if ((c >= 0) && (c <= 9)) c は数字
if ((c >= a) && (c <= z)) c は小文字
if ((c >= A) && (c <= Z)) c は大文字

です。

ただし、上にも書きましたが、

if(islower(c)) .....
と、
if ((c >= a) && (c <= z)) ...

のどちらが、読んだときに「小文字の時の処理」というのが一目でわかるか
を考えると、is〜 の関数を使うのがよいでしょう。
上の関数は、「半角」の英数字にしか使えませんが、最近は、「全角」でも
使えるように拡張した関数も付いていますし。




--
_/ -- Last 5560 hours until ATHENS 2004 Olympic Games -------------
_/ FUJIHARA Keiichi
_/ E-Mail : keiichi@… <or> nagi@…
_/ URL : http://www.keiichi.fujihara.name/
------------------------------------------+----- Luna Phase 3.03 --
PGP FingerPrint = 7CC3 4F95 8CC7 87D3 7178 C348 CD65 7F08 D68F 69F6

このエントリーをはてなブックマークに追加
添付:

このメールは下記のメールに対する返信です:

このメールには下記のメールが返信されています:

更新順メールリスト