C言語関係掲示板

過去ログ

No.1113 ASCIIコード表を出力するプログラム

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

ASCIIコード表を出力するプログラムを教えて下さい。
投稿者---azu(2004/05/31 19:38:36)


   実行した時に、

 32 20   ! 33 21   " 34 22   # 35 23   $ 36 24
% 37 25   & 38 26   ' 39 27   ( 40 28   ) 41 29
* 42 2a   + 43 2b   , 44 2c   - 45 2d   . 46 2e
/ 47 2f   0 48 30    1 49 31   2 50 32   3 51 33
4 52 34    5 53 35   6 54 36    7 55 37   8 56 38
9 57 39    : 58 3a    ; 59 3b   < 60 3c    = 61 3d
> 62 3e   ? 63 3f    @ 64 40   A 65 41   B 66 42
C 67 43   D 68 44    E 69 45   F 70 46   G 71 47
H 72 48    I 73 49   J 74 4a   K 75 4b   L 76 4c
M 77 4d   N 78 4e   O 79 4f   P 80 50   Q 81 51
R 82 52   S 83 53   T 84 54    U 85 55   V 86 56
W 87 57    X 88 58   Y 89 59   Z 90 5a   [ 91 5b 
\ 92 5c   ] 93 5d   ^ 94 5e   _ 95 5f   ` 96 60
a 97 61   b 98 62    c 99 63    d 100 64    e 101 65
f 102 66   g 103 67    h 104 68    i 105 69    j 106 6a
k 107 6b   l 108 6c    m 109 6d   n 110 6e    o 111 6f
p 112 70   q 113 71    r 114 72   s 115 73   t 116 74
u 117 75   v 118 76    w 119 77   x 120 78   y 121 79
z 122 7a   { 123 7b    | 124 7c    } 125 7d   ~ 126 7e

  のような出力結果になる、ASCIIコード表(10進数表示と16進数表示)
  を表示するプログラムを教えて下さい。お願いします。
   いくら考えても分からないのです。


No.1860

Re:ASCIIコード表を出力するプログラムを教えて下さい。
投稿者---YuO(2004/05/31 22:26:31)


>   実行した時に、
(snip)
>  のような出力結果になる、ASCIIコード表(10進数表示と16進数表示)
>  を表示するプログラムを教えて下さい。お願いします。

あなたが提供された情報から作成すると,
#include <stdio.h>

int main (void)
{
    puts(" 32  20     !  33  21     \"  34  22     #  35  23     $  36  24");
    puts("%  37  25     & 38  26     \'  39  27     (  40  28     )  41  29");
    /*...途中省略...*/
    puts("u 117  75     v 118  76     w 119  77     x 120  78     y 121  79");
    puts("z 122  7a     { 123  7b     | 124  7c     } 125  7d     ~ 126  7e");

    return 0;
}
か,
#include <stdio.h>

char ascii_chars[] = {
    ' ', '!', '\"', '#', '$', '%', '&', '\'',
    '(', ')', '*', '+', ',', '-', '.', '/',
    /*...途中省略...*/
    'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
    'x', 'y', 'z', '{', '|', '}', '~'
};

int main (void)
{
    int i;
    for (i = 0; i < sizeof(ascii_chars); ++i) {
        if (i != 0 && i % 6 == 0) puts("");
        printf("%c %i  %x   ", ascii_chars[i], i + 0x20, i + 0x20);
    }

    return 0;
}
あたりしか回答のしようがないですが……。



No.1882

Re:ASCIIコード表を出力するプログラムを教えて下さい。
投稿者---azu(2004/06/02 12:37:54)


こんなにたくさんのプログラムを考えてくれて本当にありがとうございます。
  それらを参考にプログラムを考えていきたいと思います。

No.1855

ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---azu(2004/05/31 19:58:00)


 前の「ASCIIコード表を出力するプログラムを教えて下さい。」の書き込みで、あまりにあからさまに質問してしまってすいません。
 正直言って、
      #include
      int main(void)
      {int

までしか分からなくて、これ以上手のつけようがありません。こんな初心者で 申し訳ないのですが、これ以降(とは言ってもほとんどですが)のプログラム内容を(少しでもいいので)説明も加えながら是非教えてくれませんか。



No.1856

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---monkey(2004/05/31 20:27:38)


この掲示板の管理人様のHPを勉強するだけで解決できる問題です.

まず,文字コードとはなにかを理解する.
http://www9.plala.or.jp/sgwr-t/c/sec02.html#s2-4

次に,printfの書式指定について学び,とりあえず1文字を,文字,10進数,16進数で表示してみる
http://www9.plala.or.jp/sgwr-t/c/sec05.html

さらに,繰り返しの仕方を勉強して,その応用を考える.
http://www9.plala.or.jp/sgwr-t/c/sec06-2.html

以上の努力をしてもなおかつ疑問点が残ったら,なにがどう分からないかを具体的にご質問ください.
# コードを載せる時はきちんとHTMLに変換してください.


No.1883

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---azu(2004/06/02 12:39:56)


 たくさんのヒントをくれてありがとうございます。とりあえずヒントを参考に
 頑張りたいと思います。


No.1898

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---azu(2004/06/03 14:57:04)



自分なりにかなり努力した結果のプログラムが
#include<stdio.h>
int main(void)
{int x,y;
printf("\n < ASCIIコード表 >\n");
for(x=32; x<=126; x++)
{printf(" %4c%4d%4x ",x,x,x);
for(y=0; y>=3; y++)
printf(" \n ");
}
}

なのですが、これでは実行した時 まったくきれいに表示されません。このプログラムの
どこをどう直せば見やすく表示されるようになるのか教えてください。それと、それぞれを
線のようなもので区切って,表らしく見えるようにしたいのですが どうしたらいいのかわかりません。
是非おしえてください、おねがいします。





No.1899

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---あかま(2004/06/03 15:43:05)


>どこをどう直せば見やすく表示されるようになるのか教えてください。
'\n'を適切なところで出力するだけで見やすくなります。

#include<stdio.h>
int main(void)
{
    int x,y;
    printf("\n < ASCIIコード表 >\n"); 
    for(x=32; x<=126; x++){
        printf(" %4c%4d%4x\n",x,x,x); 
    }
}


>for(y=0; y>=3; y++)
>printf(" \n ");
これは実行されません。y<=3の間違いでしょう。
改行を何度も出力しても見難いと思いますが。

>それと、それぞれを
>線のようなもので区切って,表らしく見えるようにしたいのですが どうしたらいいのかわかりません。
縦棒'|'と横棒'-'を出力すればいいのでは?




No.1900

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---monkey(2004/06/03 16:07:32)


> 自分なりにかなり努力した結果

やればできるじゃん^^
あかまさんのご回答ですべてですが,ワタシは別案を.
// 5カラムごとに改行
#include<stdio.h>
int main(void)
{
    int x;
    printf( "\n < ASCIIコード表 >\n" );
    for( x = 32; x <= 126; x++ )
    {
        printf( "%4c%4d%4x", x, x, x );
        if( ( x - 31 ) % 5 == 0 )
            printf( "\n" );
    }
    return 0;
}

// 縦棒で区切る
#include<stdio.h>
int main(void)
{
    int x;
    printf( "\n < ASCIIコード表 >\n" );
    for( x = 32; x <= 126; x++ )
    {
        printf( "|%4c%4d%4x", x, x, x );
        if( ( x - 31 ) % 5 == 0 )
            printf( "|\n" );
    }
    return 0;
}



No.1917

Re:ASCIIコード表を出力するプログラムを教えて下さい2。
投稿者---azu(2004/06/04 16:27:08)


ここまで詳しく、あかまさん、monkeyさん、ありがとうございます。
おかげでとても見やすく表示されるようになりました。
本当に感謝しています。