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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

4回答

1248閲覧

【C言語】str[]="ABCDE"と書いた後にその中の要素を一つ表示する方法を教えてください。

nullpurge

総合スコア26

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/03/10 05:45

編集2017/03/10 08:33

###前提・実現したいこと
「char str[]="ABCDE";」と宣言としたあとに、例えばstr[2]に入ってる"C"のみをprintf関数など使って表示させたいです。

###試したこと

printf("%s",str[2]);でいいと思っていましたが、エラーとなりました。

ポインタを思い出してprintf("%s",&str[2]);だ!!と思いましたが"CDE"を吐き出されパニック。

###追記
プログラミングを学び始めて1週間目です。

###解決しました????
みなさんご回答ありがとうございました!!
%cは教本に書いてあったと思うのですが完全にスルーしており盲点でした。
これからは%cとともにC言語道を歩もうと思います。
ご協力本当に感謝しております!!

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

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

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

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

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

guest

回答4

0

ベストアンサー

%s文字列の書式です。
文字を出力するときは%cです。

c

1printf("%c",str[2]);

http://www.k-cube.co.jp/wakaba/server/format.html

補足
%sは文字列なので、アドレスを指定する必要があります(str、&str[2]など)
%cは文字なので、を指定する必要があります(str[2]、'0'など)
ちなみにこう書いても1文字だけ出力することができます。

c

1printf("%.1s",&str[2]);

投稿2017/03/10 05:51

編集2017/03/10 05:59
ttyp03

総合スコア16998

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

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

0

C

1 printf("%c", str[2]);

でいいのですが、そもそも文字と文字列(Cでは厳密には文字列なんてものはありませんが)をきちんと区分しないとダメですよ。

なぜ

C

1printf("%s",&str[2]);

が CDE と表示されるかといえば、printf で %s とは、「そのポインタの示す位置から、\0 を迎えるまでを連続して出力する」ものだからです。str[] は

012345
ABCDE\0

という形で格納されているのですから、C の位置から出力を開始すれば CDE と出るのが道理です。

投稿2017/03/10 05:53

編集2017/03/10 05:55
tacsheaven

総合スコア13703

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

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

0

printf("%s",str[2]);でいいと思っていましたが、エラーとなりました。

でなく、
printf("%c",str[2]);
です。%sは文字列、%cは1文字です。

投稿2017/03/10 05:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

C

1printf("%c",&str[2]); 2

実行してませんがこれで行けるかと・・・

「%s」ストリームの型は特殊で、「終端に当たるまで、文字を吐き出し続ける」・・・だったはず。

1文字限定のキャラ型%cなら大丈夫そう

投稿2017/03/10 05:53

pratula

総合スコア16

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

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

ttyp03

2017/03/10 05:55

&str[2]はアドレス値なので、正しくないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問