No.6
- 回答日時:
char buf1,buf2,buf3,buf4,buf5;
buf1 = 'b';
...
...
switch(buf1) {
case 'a':
...
...
}
ということなら可能です。
5つのchar変数を配列にするのであれば
char buf[5];
buf[0] = 'b';
...
...
switch(buf[0]) {
case 'a':
...
...
}
となります。
「文字」「文字列」「文字の配列」を混同しないように気をつけてください。
No.4
- 回答日時:
char buf[6] = "ABCDE";
は
char buf[6] = {'A', 'B', 'C', 'D', 'E', '\0'};
です。
“文字列”は数値のようにswitchや==で比較することは「出来ません」。
“文字”はswitchや==で比較することが「出来ます」。
No.3
- 回答日時:
>char buf[5];と書いたのは
>5文字入るという意味で書いたのですが
>配列5つ作ったことになったのでしょうか?
最後(5番目)は'\0'なので、実質4文字。
また、char buf[5]; は誰がどう見ても要素5の配列宣言。
理解できてますか?
>5文字入るという意味で書きたい場合
>どのように書けば宜しいでしょうか?
5文字使いたい場合 char buf[5 + 1]; とすれば判りやすいかも。
いずれにしても、C言語における文字と文字列を復習しましょう。
すなわち char buf[5];と宣言したとき、
単体で buf を記述するとどういう意味になるか。
>>ただ、通例switchを使って文字比較をするケースは比較的に稀ですが。
>文字比較をする場合は
>どのようにすれば宜しいでしょうか?
『文字』と『文字列(文字の配列)』を厳密に区別しましょう。
『文字』の比較はすなわち数値の比較。
No.2
- 回答日時:
がると申します。
んっと…とりあえず
> char buf[5];
という宣言であれば最低限
buf[0] = 'b';
という代入式になります…というのは置いておくとして。
# ついでに書くと。switch(buf) もおかしくて、これは switch(buf[0]) になりますね。
1文字の文字比較であれば、書かれている方法で「不可能ではない」です。
ただ、通例switchを使って文字比較をするケースは比較的に稀ですが。
この回答への補足
ご返事有り難うございました。
>> char buf[5];
>という宣言であれば最低限
>buf[0] = 'b';
char buf[5];と書いたのは
5文字入るという意味で書いたのですが
配列5つ作ったことになったのでしょうか?
5文字入るという意味で書きたい場合
どのように書けば宜しいでしょうか?
>ただ、通例switchを使って文字比較をするケースは比較的に稀ですが。
文字比較をする場合は
どのようにすれば宜しいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
switch()文で値の大小比較
PHP
-
switch の範囲指定
C言語・C++・C#
-
C言語にて構造体のメンバがNULLであるかを判定するサンプルを作成して
C言語・C++・C#
-
-
4
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
5
文字列の切り出し
C言語・C++・C#
-
6
switch文のエラーについて
C言語・C++・C#
-
7
構造体のメンバをfor文で回したい
C言語・C++・C#
-
8
C言語で構造体のメンバを簡単に出力する方法ありますか?
C言語・C++・C#
-
9
エラーの意味は? Lvalue required
C言語・C++・C#
-
10
関数から配列を返すには?
C言語・C++・C#
-
11
C言語におけるif文の評価順
C言語・C++・C#
-
12
printf による16進表示について
C言語・C++・C#
-
13
break文でループを一気に抜けるには
C言語・C++・C#
-
14
1 つ以上の複数回定義されているシンボルが見つかりました
C言語・C++・C#
-
15
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
16
C言語のポインタに直接アドレスを割り振りしたい
C言語・C++・C#
-
17
C言語 空白の行(改行のみ)が入力されたらプログラムを終了する処理
C言語・C++・C#
-
18
C言語のポインターに関する警告
C言語・C++・C#
-
19
define で 配列
C言語・C++・C#
-
20
fgetsで拾われる改行文字を削除したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
C言語のfor文です。 繰り返しの...
-
C言語での文字列ソート動作につ...
-
C言語 ミリ秒を日付に変換には
-
テキストデータをそのままバイ...
-
charからLPTSTRへの変換方法
-
RGBをCMYKに変換するプログラム
-
int main()の・・・
-
英単語をアルファベット順に
-
ITです。早速ですがwinsockでUR...
-
double型の値をchar配列に変換...
-
switch文で文字を比較すること...
-
main の引数には const 付けた方が
-
iconv_open失敗
-
文字列から空白を取り除きたい...
-
c++ 文字列を入力して、一文字...
-
C言語 バイナリファイルをfloa...
-
pingの結果を取得する方法
-
sprintfの障害
-
C言語のポインターで詰まっている
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
C言語のfor文です。 繰り返しの...
-
charからLPTSTRへの変換方法
-
文字列から空白を取り除きたい...
-
C言語の入力した文字を反転させ...
-
'const char *' 型は 'char *' ...
-
配列をnビットシフトする
-
str系関数を使わずに二つの文字...
-
int main()の・・・
-
atoi( ) の反対をやりたい
-
CStringをwchar_tに変換したい
-
c++ 文字列を入力して、一文字...
-
switch文で文字を比較すること...
-
干支のプログラム
-
3桁区切(コンマ)記号をつけ...
-
絶対パスからのファイル名の切...
-
間接操作のレベルとは
-
間接参照のレベルが異なっています
-
【C言語】文字型と整数型の違い
おすすめ情報