C言語関係掲示板

過去ログ

No.576.キー入力した4桁の数字を1文字ずつ配列に格納したい

[戻る] [ホームページ]
No.5352

配列について教えてください。
投稿者---akicha(2003/02/24 20:38:31)


C言語の勉強を始めた初心者なのですが
ひとつ教えてください。

キーボードから入力された「1234」などの4桁の数字を
1文字ずつ配列に格納したいのですが、この場合はどの様に
すれば出来るのでしょうか?
入力は連続して行われます。その入力されたそれぞれを
1桁ずつ配列に格納したいのです。
数としてでなく文字として扱わないとできないのでしょうか?
初歩的な質問で申し訳ありませんが、よろしくお願いします。


No.5354

Re:配列について教えてください。
投稿者---a(2003/02/24 21:30:53)


こんなのは
    char buf[20];int arr[20];
    int i,k;char *p;
    scanf("%[0-9]",buf);
    for(i=0,p=buf;*p;p++,i++)
        arr[i]=*p-'0';
    k=i;
    for(i=0;i<k;i++)
        printf("%d ",arr[i]);


No.5356

Re:配列について教えてください。
投稿者---かずま(2003/02/25 02:59:17)


#include <stdio.h>

int main(void)
{
    int a[4], i;

    for (i = 0; i < 4; i++)
        if (scanf("%1d", a+i) != 1) return 1;
    for (i = 0; i < 4; i++)
        printf("a[%d] = %d\n", i, a[i]);
    return 0;
}


No.5357

Re:配列について教えてください。
投稿者---a(2003/02/25 03:07:59)


またまた最大フィールド幅のこと
忘れてました。まだまだだな。

No.5396

有難うございました。
投稿者---akicha(2003/02/26 18:30:34)


初歩的な質問にも関わらず、
丁寧に教えて頂いてどうも有り難うございました!
これでなんとか前に進めそうです。
また何かありましたらよろしくお願いいたします。

No.5408

配列についてもう少し教えてください。
投稿者---akicha(2003/02/27 19:30:47)


先日はどうも有り難うございました。
教えていただいたものを、二次元配列にしようと
思ったのですがうまくいきません。
以下のものを二次元は配列にする場合、どうしたら
できますか?

if (scanf("%1d", a+i) != 1) return 1;
の中の【a+i】の意味がよくわからなくて・・・
教えていただいた方法が自分が読んでいる
本には載っていません。初歩的な質問で
何度も申し訳ございませんがよろしくお願いいたします。


#include <stdio.h>

int main(void)
{
int a[4], i;

for (i = 0; i < 4; i++)
if (scanf("%1d", a+i) != 1) return 1;
for (i = 0; i < 4; i++)
printf("a[%d] = %d\n", i, a[i]);

return(0);
}




No.5410

Re:配列についてもう少し教えてください。
投稿者---かずま(2003/02/28 00:01:49)


>> if (scanf("%1d", a+i) != 1) return 1;
> の中の【a+i】の意味がよくわからなくて・・・

&a[i] と同じです。これなら分かりますか。


> 二次元は配列にする場合、どうしたらできますか?
#include <stdio.h>

int main(void)
{
    int a[2][3], i, j;

    for (i = 0; i < 2; i++)
        for (j = 0; j < 3; j++)
            if (scanf("%1d", &a[i][j]) != 1) return 1;

    for (i = 0; i < 2; i++) {
        for (j = 0; j < 3; j++)
            printf("   a[%d][%d] = %d", i, j, a[i][j]);
        printf("\n");
    }
    return 0;
}


No.5412

わかりました!
投稿者---akicha(2003/02/28 09:58:24)


>&a[i] と同じです。これなら分かりますか。

はい!これならわかります。
そういうことだったのですね。
初歩的な事で本当に恐縮です。
もっと頑張って勉強します。
どうも有り難うございました!!