打印数组中的汉字

项目中经常会遇到需要打印数组中的文字,但是输出确是转印字符,这时就需要添加一个类别来处理

#import "NSArray+Log.h"


@implementation NSArray (Log)

- (NSString *)descriptionWithLocale:(id)locale {
    NSMutableString *string = [NSMutableString string];
    
    [string appendFormat:@"%lu (",(unsigned long)self.count];
    
    for (id obj in self) {
        [string appendFormat:@"\n\t\"%@\",",obj];
    }
    
    [string appendFormat:@"\n)"];
    
    return string;
}

@end
### C语言使用二维数组打印汉字 在C语言中,可以通过将汉字的字模存储在一个二维数组中来实现打印汉字的功能。每个汉字可以被看作是一个由多个点组成的图案,这些点可以用二进制位表示,即0代表空白,1代表有墨迹。 #### 定义并初始化二维数组 首先定义一个二维数组用于保存汉字的字模数据: ```c #include <stdio.h> // 假设我们有一个8x16大小的字体库 unsigned char hanzi[16][8] = { {0xC0, 0x60, 0x30, 0x18, 0x0C, 0x0E, 0x07, 0xFF}, // 行1 {0xE0, 0x70, 0xB8, 0xA4, 0xF9, 0xFB, 0xFD, 0xFE}, ... }; ``` 这里`hanzi`是一个16行8列的字符型数组,用来模拟一个简单的汉字形状[^2]。 #### 显示函数 接着编写显示该汉字图形化的子程序,遍历整个二维数组并将每一位转换成可视形式输出到屏幕上: ```c void display_hanzi(unsigned char (*p)[8]) { for(int row=0;row<16;++row){ for(int col=0;col<8;++col){ unsigned char byte = p[row][col]; for(int bit=7;bit>=0;--bit){ // 每个byte中有8bits putchar((byte&(1<<bit)) ? '*' : ' '); // 如果对应位置为1则打印'*'否则为空格 } } puts(""); // 结束当前行后换行 } } ``` 这段代码会逐行读取每一列的数据,并根据其值决定是否绘制星号(*)还是留白(^M),从而形成完整的汉字图像。 #### 主函数调用 最后,在主函数里调用上述方法完成最终效果展示: ```c int main(){ printf("Displaying Hanzi:\n"); display_hanzi(hanzi); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值