gpt4 book ai didi

c - 在 C 中生成 Ascii 艺术文本

转载 作者:太空狗 更新时间:2023-10-29 15:01:12 25 4
gpt4 key购买 nike

我正在尝试为一个有趣的应用程序生成 ascii 艺术文本。从 FIGLET,我得到了 ASCII 模式。我在 printf 语句中使用该模式来打印字母。这是我从 FIGLET 获得的图案的屏幕截图:

FIGLET

这是我用来打印 A 的代码片段:

printf("      _/_/\n   _/    _/\n  _/_/_/_/\n _/    _/\n_/    _/\n");

现在,我从用户那里获取输入文本,并以 ASCII 艺术形式显示它。当我使用 printf 时,我只能垂直生成它:

Vertical image

但我需要做水平 ASCII 艺术。怎么做?

最佳答案

是的,这是一个众所周知的问题。我最后一次解决这个问题是为每一行使用一个数组并分别呈现每个字母。

首先,我会用数组表示每个字母。例如你的 A 会是这样的:

char* letter[8]; 
letter[0] = " _/_/ ";
letter[1] = " _/ _/";
etc.

(实际上,将使用一个二维数组,其中每个字母位于不同的索引处。)

实际的渲染也会在一个数组中,类似于:

char* 渲染[8];

然后使用串联来构建每一行。一个简单的嵌套 for 循环应该可以解决问题:

for each line, i to render (i.e the height of the letters)
for each letter, j
concatenate line i of letter j to the to char* i in the array

最后遍历数组并打印每一行。实际上,您可以跳过渲染数组并简单地打印每一行而无需回车。想到以下内容:

for each line, i to render : // (i.e the height of the letters) 
for each letter, j {
output line i of letter j
}
output a carriage return
}

(我的 C 有点生疏,从那里开始是“伪”代码。但是,我认为我的逻辑是合理的。)

关于c - 在 C 中生成 Ascii 艺术文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8586327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com