
A 回答 (12件中1~10件)
- 最新から表示
- 回答順に表示
No.12
- 回答日時:
使用している文字コードにもよりますが、
'A'~'Z'、'a'~'z'は連続しているとは限らないので
If(c >= 'A' && c <= 'Z') {
printf("大文字\n");
} else if(c >= 'a' && c <= 'z') {
printf("小文字\n");
}
では上手く動作しない場合があるのでは?
isupper islower の使用をお勧めします。
No.11
- 回答日時:
No.7 追記
質問文読み直して、重要なことを忘れてたのに気がついた。
質問者は「1Byte文字」だとは書いてない。書いてるのは「入力された1文字」。
つまり、入力文字がマルチバイトなのかを最初に確認しないといけない。
No.10
- 回答日時:
本当にベタなら条件は
c == 'A' || c == 'B' || (中略) || c == 'Y' || c == 'Z'
とか
c == 'a' || c == 'b' || (中略) || c == 'y' || c == 'z'
(もちろん順序を変えてもかまわない) って書かないと>#8.
条件が「英字大文字」とか「英字小文字」ということになると, 厳密にはロケールを適切に設定しないと isupper などでうまく判定できないかも....
No.9
- 回答日時:
> もっと詳しく書くことは出来ないんですか?
isupper() という用意されている関数を使えば考える必要もなく判断できるのですが、要するに組み込みの関数ではなく、自分で判断をするようにしたいということでしょうか? それでしたら
If(c >= 'A' && c <= 'Z') {
printf("大文字\n");
} else if(c >= 'a' && c <= 'z') {
printf("小文字\n");
}
No.8
- 回答日時:
関数の概念が難しいのだと思うので、ベタな方法で書くと…
if ('A' <= c && 'Z' >= c)
{
printf("英字大文字です");
}
else if ('a' <= c && 'z' >= c)
{
printf("英字小文字です");
}
※変数cに文字が格納されている
ちなみにこれって、中学校の宿題かなにか?
No.7
- 回答日時:
>もっと詳しく書くことは出来ないんですか?
以下、JIS X3010:2003から引用
7.4.1.7 islower関数
形式
#include <ctype.h>
int islower(int c);
機能 islower関数は、小文字、又はiscntrl, isdigit, ispunct若しくはisspaceのいずれも真とならない文化圏固有の文字集合の中の文字かどうかを判定する。"C"ロケールでは、islowerは、小文字に対してだけ真を返す。
7.4.1.11 isupper関数
形式
#include <ctype.h>
int isupper(int c);
機能 isupper関数は、大文字、又はiscntrl, isdigit, ispunct若しくはisspaceのいずれも真とならない文化圏固有の文字集合の中の文字かどうかを判定する。"C"ロケールでは、isupperは、大文字に対してだけ真を返す。
これ以上詳しい情報が欲しければ、処理系を特定してください。
なお、詳しいことが分かりやすいことに直結するわけではありません。
No.6
- 回答日時:
>もっと詳しく書くことは出来ないんですか?
if(英字大文字の判定)
「英字大文字です」と表示
else if(英字小文字の判定)
「英字小文字です」と表示
else
それ以外をどこまで判定するかは知らん。
「詳しく」書いた。
提示された関数を自分で調べる気もないのなら、関数は使わない説明の方がいいだろ。
No.5
- 回答日時:
>それとも分からないだけでしょうか^^;
正しい回答しているのにこの返事はないと思いますよ
isupperで検索するなりされたのでしょうか
もう少し詳しく書くとisupper関数で大文字の判定が出来ます
具体的な使用法は#1さんの回答にあるリンク先を見てください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
charと%c , %s の関係について
-
単語数のカウントについて
-
C言語、単語ごとに改行したい
-
C言語のステップ数をカウントす...
-
fgetsとsscanfを使って一行から...
-
C言語:配列の中の文字を。。。
-
教えていただけませんか?C言語...
-
エディットボックスに入力され...
-
main.c:7:43: warning: implici...
-
「Aに対するBの割合」と「Aに対...
-
Aの値からBの値を除するとは??
-
Enterキーを押されたら次の処理...
-
有効数字について 以前質問をし...
-
プログラムでの数字につく”f”の...
-
「指定されたキャストは有効で...
-
20'(角度)の計算がわかりま...
-
複数桁10進数の*桁目だけを抽出...
-
信頼区間の1.96や1.65ってどこ...
-
C言語での引数の省略方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgets関数を使用したときの文字...
-
sscanfとscanfの違いがよくわか...
-
fgetsで拾われる改行文字を削除...
-
CStringのFindで文字列検索を行...
-
charと%c , %s の関係について
-
C言語のステップ数をカウントす...
-
反転した数値を表示させるやり方
-
C言語 空白の行(改行のみ)が...
-
Cで「大文字、小文字の判定」は...
-
putsとputcharの違い?
-
1行の文字列を時間差で表示する...
-
C言語 strlen 再入力を促す
-
str[j++]の意味
-
C言語の初心者です。これを実行...
-
C言語、単語ごとに改行したい
-
C言語:配列の中の文字を。。。
-
gets fgetsについて
-
プログラムのことで
-
文字列の操作
-
エディットボックスに入力され...
おすすめ情報