首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

念写一个程序,输入一个汉字,然后用字符把汉字的形状输出来

2013-06-25 
想写一个程序,输入一个汉字,然后用字符把汉字的形状输出来如题,输入一个汉字,用指定的字符把汉字的笔画输

想写一个程序,输入一个汉字,然后用字符把汉字的形状输出来
如题,输入一个汉字,用指定的字符把汉字的笔画输出来,效果如下图:
念写一个程序,输入一个汉字,然后用字符把汉字的形状输出来

哪位大牛有源码,或者提供点思路,小弟不胜感激
[解决办法]
需要下载或转换一个字库,程序则简单。
[解决办法]
这个还是搜搜看吧。。根据输入的字,找到响应的点阵数组。。然后输出
[解决办法]
矩阵 点阵转换
[解决办法]
调用绘图函数,画出来,取走放在数组中。
然后按数组(字模)写汉字就可以了。
控制台也可以使用API的甚至可以使用,MFC
[解决办法]

#include <stdio.h>
#include <conio.h>
const unsigned char bit[8]={128,64,32,16,8,4,2,1};
unsigned char buffer[32];
FILE *hzk;
unsigned long offset;
unsigned int q,w;
int x,y,qw;
//--------------------
void display(char *hz) {

    qw=*((int *)hz);
    q=(qw&0x00FF)-0xA1;
    w=((qw>>8)&0x00FF)-0xA1;
    offset=q*0x5E+w;
    offset*=32;
    if ((hzk=fopen("HZK16","rb"))==NULL) {
        printf("Can not open file HZK16!\n");
        return;
    }
    fseek(hzk,offset,SEEK_SET);
    fread(buffer,1,32,hzk);
    fclose(hzk);
    for (y=0;y<16;y++) {
        for (x=0;x<16;x++) {
            if (buffer[y*2+x/8] & bit[x%8]) {
                printf("%s",hz);
            } else {
                printf("  ");
            }
        }
        printf("\n");
    }
}
void main() {
    display("啊");
    getch();
}
//                          啊
//    啊  啊啊啊啊  啊啊啊啊啊啊
//啊啊啊啊啊    啊          啊
//啊  啊  啊    啊          啊
//啊  啊  啊  啊        啊  啊
//啊  啊  啊  啊    啊啊啊啊啊
//啊  啊  啊啊      啊  啊  啊
//啊  啊  啊  啊    啊  啊  啊
//啊  啊  啊  啊    啊  啊  啊
//啊  啊  啊    啊  啊  啊  啊
//啊啊啊  啊    啊  啊啊啊  啊


//啊  啊  啊啊  啊  啊  啊  啊
//        啊  啊            啊
//        啊                啊
//        啊            啊  啊
//        啊              啊啊


其中HZK16文件来自UCDOS

热点排行