C言語関係掲示板

過去ログ

No.1118 日本語の五十音順表を表示するプログラムを作りたいのですが・・・

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

日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---azu(2004/06/04 19:45:28)


 ひらがな カタカナそれぞれを五十音順で表示するプログラムが作れずに悩んでいます。  実行したときに  例えば
 ----------------------------
|あア いイ うウ えエ おオ|
 ----------------------------
|かカ きキ くク けケ こコ|
 ----------------------------
(以下略)

 のように表示するようにしたいのです。

 ”あいうえお”のたった一行だけ表示するプログラムなら、コンパイル
 のとき エラーになってしまいますが(無理やり実行すれば)一応表示
 される、
     
 #include <stdio.h>
int main(void)
{ char moji[50]="あいうえお";
printf ("%s",moji);
}
printf ("\n");
}

というものを作ったのですが、このプログラムではエラーを起こす時点でダメ
 だし、何より"あア〜んン"をそれぞれの行ごとに表示するまでに全然至りま  せん。 それに、工夫が一切なくてつまらないプログラムになっています。
  なので、"あア〜んン"を五十音順で表示するプログラムを、どんなやり方で も いいので 教えてください。



No.1926

Re:日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---nop(2004/06/04 23:30:13)


> ”あいうえお”のたった一行だけ表示するプログラムなら、コンパイル
> のとき エラーになってしまいますが(無理やり実行すれば)一応表示
> される、
> #include <stdio.h>
>int main(void)
>{ char moji[50]="あいうえお";
> printf ("%s",moji);
> }
> printf ("\n");
>}

どう考えても、コンパイルが通らないし、
実行ファイルも出来ないから実行も出来ないだろうに。


No.1927

Re:日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---nop(2004/06/04 23:41:45)


>"あア〜んン"を五十音順で表示するプログラムを、どんなやり方で も いいので 教えてください。

とりあえず、これでどうぞ。


#include  <stdio.h>

int  main( void )
{
    puts( " ----------------------------\n"
          "|あア いイ うウ えエ おオ|\n"
          " ----------------------------\n"
          "|かカ きキ くク けケ こコ|\n"
          " ----------------------------\n"
          "|さサ しシ すス せセ そソ|\n"
          " ----------------------------\n"
          "|たタ ちチ つツ てテ とト|\n"
          " ----------------------------\n"
          "|なナ にニ ぬヌ ねネ のノ|\n"
          " ----------------------------\n"
          "|はハ ひヒ ふふ へヘ ほホ|\n"
          " ----------------------------\n"
          "|まマ みミ むム めメ もモ|\n"
          " ----------------------------\n"
          "|やヤ    ゆユ    よヨ|\n"
          " ----------------------------\n"
          "|らラ りリ るル れレ ろロ|\n"
          " ----------------------------\n"
          "|わワ          をヲ|\n"
          " ----------------------------\n"
          "|んン            |\n"
          " ----------------------------\n"
          );
    return 0;
}



No.1934

Re:日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---monkey(2004/06/05 09:38:09)


> ”あいうえお”のたった一行だけ表示するプログラムなら、コンパイル
> のとき エラーになってしまいますが(無理やり実行すれば)一応表示
> される、

コンパイルエラーなのに無理やり実行できるとは如何に?!

>どんなやり方で も いいので 教えてください。

こんなやり方でも良いかな?
#include <stdio.h>
#include <string.h>

int main()
{
    const signed char HIRA[] = "あいうえおかきくけこ"
                               "さしすせそたちつてと"
                               "なにぬねのはひふへほ"
                               "まみむめもや  ゆ  よ"
                               "らりるれろわ      を"
                               "ん        ";

    const signed char KATA[] = "アイウエオカキクケコ"
                               "サシスセソタチツテト"
                               "ナニヌネノハヒフヘホ"
                               "マミムメモヤ  ユ  ヨ"
                               "ラリルレロワ      ヲ"
                               "ン        ";

    signed char str[ 1024 ];
    int pos = 0, len = strlen( HIRA ), i, j;

    for( i = 0; i < len; i += 2 )
    {
        if( i % 10 == 0 )
        {
            for( j = 0; j < 26; ++j )
                str[ pos++ ] = '-';
            str[ pos++ ] = '\n';
            str[ pos++ ] = '|';
        }
        str[ pos++ ] = HIRA[ i ];
        str[ pos++ ] = HIRA[ i + 1 ];
        str[ pos++ ] = KATA[ i ];
        str[ pos++ ] = KATA[ i + 1 ];
        if( ( i + 2 ) % 10 == 0 )
        {
            str[ pos++ ] = '|';
            str[ pos++ ] = '\n';
        }
        else
            str[ pos++ ] = ' ';
    }
    for( j = 0; j < 26; ++j )
        str[ pos++ ] = '-';
    str[ pos++ ] = '\n';
    str[ pos ] = '\0';

    printf( "%s", str );
    return 0;
}




No.1940

Re:日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---かずま(2004/06/06 01:16:16)


> どんなやり方で も いいので 教えてください。
#include <stdio.h>

int main(void)
{
    long t[] = { 0xaaaaa6aa, 0x7ff556ae, 0x19558895, 0x00000015 };
    int i = 0, j, k = 158;

    puts("+------------------------+");
    do {
        if (!(i % 5)) printf("|");
        if (!(j = t[i>>4] >> ((i & 15) << 1) & 3)) printf("    ");
        else k += j, printf("%c%c%c%c", 130, k, 131, k-94-(i<32));
        printf(++i % 5 ? " " : "|\n+------------------------+\n");
    } while (i < 55);
    return 0;
}

----------------------------------------------------------------------
「ゐヰ ゑヱ」を出したくなかったら、
    long t[] = { 0xaaaaa6aa, 0x7ff556ae, 0x09558895, 0x0000001c };

文字コードが EUC なら、
    , k = 160;
    , printf("%c%c%c%c", 164, k, 165, k);



No.1965

Re:日本語の五十音順表を表示するプログラムを作りたいのですが・・・
投稿者---azu(2004/06/07 12:30:30)


   
Reしてくれた皆さん、本当にありがとうございます。
 とても参考になりました、がんばれそうです。