質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

Q&A

解決済

3回答

1290閲覧

丁寧に解説してくれるとありがたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

0グッド

0クリップ

投稿2020/05/10 08:45

「文字型の変数cに文字´a´を代入して、c,c+1,c+2の内容を文字として画面に作成せよ」がわかりません。教えてくれると助かります????

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2020/05/10 08:46

タイトルもひどいですが、何の言語くらいは記載したが良いですよ
guest

回答3

0

Go

1package main 2import "fmt" 3func main() { 4 c := 'a' 5 fmt.Printf("%c%c%c\n", c, c + 1, c + 2) 6}

投稿2020/05/10 09:32

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

C言語のコンソールアプリケーションだと仮定します。

「文字型の変数c」は以下のように宣言します。変数とは、変わる可能性のある値の入れ物だとでも考えてください。

c

1char c;

「文字型の変数cに文字´a´を代入する」とは、以下のように書きます。

c

1c = 'a';

これで変数 c には、'a' という値が入りました。
正確に言うと 'a' という文字の ASCII コード 97 (16進数だと61)が入ります。ここが分かっていないと文字に +1 とかするってどういうことやねん、となると思います。

ここで「cの内容を文字として画面に作成せよ」が「の内容を文字として画面に表示せよ」という意味であれば、次のように printf という関数を使用します。

c

1printf("%c\n", c);

ここで %c というのは出力指定子などと呼ばれ、%c の場合は、char 型の変数を受け取って文字として衆力する役割があります。"\n" は改行を表す特殊な文字列です。

なお、printf 関数を利用する場合は、studio.h というヘッダーファイルを読み込む必要があります。
ファイルの冒頭などで以下のように宣言します。

c

1#include <stdio.h>

同様に「c+1,c+2の内容を文字として画面に表示する」場合は、以下のように書きます。

c

1 printf("%c\n", c+1); 2 printf("%c\n", c+2);

これらを一つのプログラムとして書くと以下のようになります。

c

1#include <stdio.h> 2 3int main(void) 4{ 5 char c; 6 7 c = 'a'; 8 printf("%c\n", c); 9 printf("%c\n", c+1); 10 printf("%c\n", c+2); 11 12 return 0; 13}

これをコンパイルして実行すると以下のような出力が表示されます。

a b c

以上、できる限り丁寧に説明したつもりですが、ご理解いただけなければ、私の力不足です。

★★★★★★ 以下は読まなくても良いです。 ★★★★★★

三行程度だとあまり感じないかもしれませんが、

c

1 printf("%c\n", c); 2 printf("%c\n", c+1); 3 printf("%c\n", c+2);

の部分が同じこと書いていて、スマートじゃないと思ったら、繰り返し構文を使いましょう。

c

1#include <stdio.h> 2 3int main(void) 4{ 5 char c; 6 int index; 7 8 c = 'a'; 9 for (index=0; index<3; index++) { 10 printf("%c\n", c+index); 11 } 12 13 return 0; 14} 15

ただ、この例だと逆に行数が増えてしまうのでメリットを感じないかもしれません。

【c,c+1,c+2の内容を文字として一度に出力して良い場合】

c

1printf("%c %c %c\n", c, c+1, c+2);

のような書き方もあります。%c の個数分、引数を書くことができます。この辺を理解するためには、可変長引数について学ぶ必要があるかもしれません。

参考

投稿2020/05/10 09:49

編集2020/05/10 11:14
Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/10 10:47

こんなに丁寧に解説してくださりありがとうございます。
Yasumichi

2020/05/10 10:54

なお、raccy さんのか書かれた Go 言語の例のように一行で一回で出す場合は、 printf("%c %c %c\n", c, c+1, c+2); という書き方もできます。
Zuishin

2020/05/10 11:20

このサイトの使い方もついでに丁寧に教えてあげてください。
Zuishin

2020/05/10 11:21

同じことを繰り返されても困るし、もう一つの質問がほったらかしなので。
Yasumichi

2020/05/10 11:29

1218tk さんへ https://teratail.com/questions/260362 と同じ質問と思われますので、そちらの方も解決済みにしてください。 また、投稿した質問は、編集することが可能ですのでタイトルを変える場合は、編集で変えるようにしましょう。 また、タイトルには、何の質問か分かるようにつけるようにしましょう。
退会済みユーザー

退会済みユーザー

2020/05/10 12:16

今後気を付けます。すいませんでした。
Yasumichi

2020/05/10 12:17

よろしくお願いします。
guest

0

「C言語 入門」でぐぐって、出てきたものを一通り読んでみよう。
その程度ならそれだけで組めますぜ

投稿2020/05/10 09:32

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問