有没有办法在C中打印以下模式?注意中间没有空格
是否可以按原样打印此图案,星号之间没有空格?
回答
这不是真正的 C 问题,而是目标设备问题。如果您正在写入图形设备,那么您当然可以绘制设计。如果您正在处理字符设备,那么就成为可能支持哪些字体/字符集的问题。例如,许多设备将允许您使用位图或自定义等宽 TrueType/OpenType 字体指定自定义字符集。
为了让我说明我在说什么,假设“<”代表星号的左半部分,“>”代表右半部分,自定义设备上的一个字符在这里用 2 个字符表示。
设计4个自定义位图字符:
- 一个完整的星号:
'<>' - 左半星号:(
' <'“邻接”字符单元格的右侧) - 右半星号:(
'> '紧靠字符单元格的左边缘) - 右半/左半:
'><'
在下图中,有“设备”5 个字符的列。这 5 列在这里用 2 个字符表示,每个字符带有“|” 分隔设备列的字符,使列更容易可视化(它们不会出现或占用设备显示屏上的空间)。现在您的图像将像这样创建:
| 1| 2| 3| 4| 5| column numbers
+--+--+--+--+--|
|<>|<>|<>|<>|<>| a row of 5 "normal" asterisk characters
| <|><|><|><|> | a row of 4 made up of various "half-asterisk" characters
| |<>|<>|<>| | a row of 3 normal asterisks
| | <|><|> | | 2 asterisks made up of half-asterisks characters
| | |<>| | | 1 normal asterisk
+--+--+--+--+--+
没有“|” 字符以帮助可视化列,此显示将如下所示:
<><><><><> a row of "normal" asterisk characters
<><><><> a row of various "half-asterisk" characters
<><><> a row of normal asterisks
<><> half-asterisks
<> a normal asterisk
这种技术类似于使用包含“框绘图”字符的字符集之一绘制图表:https : //en.wikipedia.org/wiki/Box-drawing_character