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

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

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

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

Q&A

解決済

2回答

1277閲覧

C言語ついて教えて頂きたいです。

cocco12

総合スコア1

C

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

0グッド

0クリップ

投稿2021/01/08 00:46

編集2021/01/08 00:54

大学の授業での問題なのですが、
「入力された4文字の英単語(例えばBook,Bird,Mikeなど)を、そのまま表示するプログラムをscanf()を用いて作成しなさい。
必ず四文字入力される前提で作成しなさい。"文字"を入力するscanf()を何度使用してもよい」

このプログラムを作る問いなのですが、間違いを見つけられません。
修正箇所を教えて頂きたいです。
よろしくお願い致します。

発生している問題・エラーメッセージ

scanf ()を使い、入力した値を変数へ代入して下さい。
入力した変数の値をprintf()で表示してください。

該当のソースコード

C

1#include<stdio.h> 2int main(void) 3{ 4 char c; 5 printf("4文字の英単語:\n"); 6 scanf("%s", &c); 7 printf("%sが入力されました。\n" ,c ); 8 9 10 return 0; 11}

↓実行例↓

4文字の英単語:Book  //BOOKは入力内容です
Book が入力されました。

試したこと

調べて出てきた
char c[256];
を書いてみると、見本通りに表示されるのですがまだ未学習のせいなのか合格になりません。

補足情報(FW/ツールのバージョンなど)

大学が用意したページで行っています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

調べて出てきた

char c[256];
を書いてみると、見本通りに表示されるのですがまだ未学習のせいなのか合格になりません。

そんなの投げ捨てろ!って感じですが、
要するに、文字を文字列としてでは無く、一文字ずつの文字データとして扱え、という要求なのだと思います。
なので、必要な物は、

文字を一文字だけ標準入力から取得する方法
文字を一文字だけ標準出力に出力する方法

の2つになります。
scanfやprintfを使っても可能ですので、まずはそれを調べてみて下さい。
その上で、4文字をということなので、そのセットを4回書けば、コード的には動きます。

でもおそらく、課題としては、4回ループさせるコードを書け、ということである可能性が高い気がします。

ちなみに、入力はキーを押した瞬間にscanfに送られるわけではなく、エンターが押されるまでは、プールされてその後にまとめて入力ストリームとして、scanfに送られるので、
一文字取って一文字出すという方法でも、入力後にまとめて出力されます。

投稿2021/01/08 01:00

編集2021/01/08 01:05
amiya

総合スコア1218

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

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

cocco12

2021/01/08 01:15

ループはまだ未学習でしたので、アドバイス通り1文字の取得と出力を4セットで書き直したら合格出来ました! とても詳しくありがとうございました!!
guest

0

"文字"を入力するscanf()を何度使用してもよい

%sは、文字列を入力する書式指定子です。課題の指定に従っていません。

投稿2021/01/08 00:50

maisumakun

総合スコア145183

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

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

cocco12

2021/01/08 01:11

英単語も英数字だと思い%sを使用しており、%cで書き直すと出来ました! ひとつまた勉強になりました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問