初めまして、C言語を勉強している高校生です。
このプログラムの結果としてこのように表示したいと考えています。
abcdeと入力したとき実行
入力した文字 = abcde
*.
..
..
*.
*.
..
**
..
..
**
.*
..
*.
.*
..
このようにするには、a = *.\n..\n\..\n(適当ですが) というふうにa~zまでプログラムしなければいけないんですか?
それとも何か点字には法則のようなものがあり、上記のようにしなくても簡潔にできますか?
できれば簡単にプログラムを書いて欲しいのですが・・・・・
入力したアルファベットの小文字を点字で表示したいのですが・・・
Re: 入力したアルファベットの小文字を点字で表示したいのですが・・・
点字の配置を数値として扱った方が汎用性が増すと思います
3点が2列の6ビットで表現できるので8進数で扱えばちょうど良さそうです
3点が2列の6ビットで表現できるので8進数で扱えばちょうど良さそうです
#include <stdio.h>
int main(void)
{
int i;
int alpha[] = {
/* a-j */
001, 003, 011, 031, 021, 013, 033, 023, 012, 032,
/* k-t */
001+4, 003+4, 011+4, 031+4, 021+4, 013+4, 033+4, 023+4, 012+4, 032+4,
/* u-z */
001+044, 003+044, 072,011+044, 031+044, 021+044};
for (i = 0; i < 26; i++)
{
if (alpha[i] & 001)
{
printf("●");
}
else
{
printf("○");
}
if (alpha[i] & 010)
{
printf("●\n");
}
else
{
printf("○\n");
}
if (alpha[i] & 002)
{
printf("●");
}
else
{
printf("○");
}
if (alpha[i] & 020)
{
printf("●\n");
}
else
{
printf("○\n");
}
if (alpha[i] & 004)
{
printf("●");
}
else
{
printf("○");
}
if (alpha[i] & 040)
{
printf("●\n");
}
else
{
printf("○\n");
}
printf("\n");
}
return 0;
}
Re: 入力したアルファベットの小文字を点字で表示したいのですが・・・
toyoさん 返信ありがとございます。
アルファベットを数字としてみれば点字にしやすいというのがわかりました。
ですが、僕の勉強不足で今回つくりたいプログラムはscanfで読み込んだアルファベットを点字にするというプログラムにどのように組み込んでいいのか分からないので教えていただけないでしょうか?
アルファベットを数字としてみれば点字にしやすいというのがわかりました。
ですが、僕の勉強不足で今回つくりたいプログラムはscanfで読み込んだアルファベットを点字にするというプログラムにどのように組み込んでいいのか分からないので教えていただけないでしょうか?
Re: 入力したアルファベットの小文字を点字で表示したいのですが・・・
カンザキさんはどこが分からないのでしょうか?カンザキ さんが書きました:ですが、僕の勉強不足で今回つくりたいプログラムはscanfで読み込んだアルファベットを点字にするというプログラムにどのように組み込んでいいのか分からないので教えていただけないでしょうか?
scanfで文字を取得する方法が分からない。
scanfで読み込んだ文字を数値にして使う方法が分からない。
など、色々あると思います。
scanfで文字列を取得して、出力するだけのプログラムや
上記で取得した文字列を1文字ずつ出力することはできるでしょうか?