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

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

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

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

Q&A

解決済

3回答

315閲覧

文字を分割して取得する方法

退会済みユーザー

退会済みユーザー

総合スコア0

C

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

0グッド

0クリップ

投稿2020/05/13 09:22

A702いう入力に対して、A, 7, No.02 というように分割したいです。これは例え、入力がC615などになってもC, 6, No.15となるようにしたいのですが、どのようにすれば良いのでしょうか。
%c%dによってAと702に分割することまでは理解しました。

C言語

1  // 値の設定 2 char num; 3 int num2; 4 scanf("%c%d", &num, &num2); 5 6 // 出力 7 printf(" %c, %d, ",num ,num2); 8 printf("No.%d\n",);

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

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

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

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

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

guest

回答3

0

次のコードをどう思いますか?

C

1#include <stdio.h> 2 3int main(void) 4{ 5 char s[100]; 6 scanf("%99s", s); 7 printf("%c, %c, No.%s\n", s[0], s[1], s + 2); 8}

投稿2020/05/13 14:09

kazuma-s

総合スコア8224

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

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

退会済みユーザー

退会済みユーザー

2020/05/14 03:11

リストに100個入れてから参照する点がすごく優れているなと思いました。 初学者で申し訳ないのですが、2点教えて頂けませんか。 まず、リスト化したことで整数も文字扱いだから、s[1]の参照が%dではなく%cなのでしょうか。 また、2文字を参照するときに%sでs + 2という型を取っているのが不思議です。 お時間が許せばご回答よろしくお願いします。
kazuma-s

2020/05/14 10:03

リストに 100個なんか入れていません。 この問題の場合、入力文字列は 4文字だから、 char s[5]; scanf("%4s", s); でいいんです ただ、最初 scanf("%s", s) と書いていて、入力文字数の制限を付けなかったので 入力ミスで A7023 など 4文字を超える入力があった場合、char s[5]; では ダメだと思って、char s[100]; にしてしまっただけです。 %c で s[1] を出力するのは、そのとおり文字だからです。 s + 2 は、s の先頭から 2つ先の要素を指すポインタですから、そこからの文字列となります。
退会済みユーザー

退会済みユーザー

2020/05/14 12:51

丁寧にありがとうございます。 非常に分かりやすかったです!
guest

0

ベストアンサー

#include <stdio.h> int main() { char num; int num1, num2; scanf(" %c%1d%2d", &num, &num1, &num2); printf(" %c, %d, No.%02d\n", num, num1, num2); return 0; }

くらいでいいのでは?

投稿2020/05/13 10:16

PingHermit

総合スコア478

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

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

退会済みユーザー

退会済みユーザー

2020/05/13 11:24

ありがとうございます!
guest

0

%c%dによってAと702に分割することまでは理解しました。

そこまで理解できているのならAの読み取りと同様にするだけですが、何がわからないのでしょうか。
数字に対しても%cは使えますよ。

投稿2020/05/13 09:53

SHOMI

総合スコア4079

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問