C++ C++;如何水平打印大号字母?

C++ C++;如何水平打印大号字母?,c++,C++,例如,a具有打印大“a”的函数 该程序的目标是用这些大字母垂直或水平打印用户的输入 以下是我的程序的恢复版本: void printA(){ cout<<"0000000\n0 0\n0 0\n0000000\n0 0\n0 0\n"<<endl; } void printChar(char c){ c = toupper(c); if (c=='A') printA(); } int main(){

例如,a具有打印大“a”的函数

该程序的目标是用这些大字母垂直或水平打印用户的输入

以下是我的程序的恢复版本:

void printA(){
    cout<<"0000000\n0     0\n0     0\n0000000\n0     0\n0     0\n"<<endl;
}

void printChar(char c){
    c = toupper(c);
    if (c=='A')
    printA();

}
int main(){

string sentence;
cout<<"enter sentence: ";
cin>> sentence;

for(unsigned int i = 0; i<sentence.length(); i++) {
    char c = sentence[i];
    if(c=='a')
    printA();
}
return 0;

}
void printA(){

cout如果可以以不同格式(此处为2D数组)存储字符行,如下所示:

…,然后可以按如下方式打印字符:

void printA(){
    cout << "0000000" << endl;
    cout << "0     0" << endl;
    cout << "0     0" << endl;
    cout << "0000000" << endl;
    cout << "0     0" << endl;
    cout << "0     0" << endl;
}
void PrintBigString(const std::string& text)
{
    for (int line = 0; line < LINES_PER_CHAR; ++line)
    {
        for (char c : text)
        {
            std::cout << alphabet[c - 'A'][line] << "  ";
        }
        std::cout << std::endl;
    }
}
void PrintBigString(const std::string和text)
{
for(int line=0;linestd::cout如果可以以不同格式(此处为2D数组)存储字符行,如下所示:

…,然后可以按如下方式打印字符:

void printA(){
    cout << "0000000" << endl;
    cout << "0     0" << endl;
    cout << "0     0" << endl;
    cout << "0000000" << endl;
    cout << "0     0" << endl;
    cout << "0     0" << endl;
}
void PrintBigString(const std::string& text)
{
    for (int line = 0; line < LINES_PER_CHAR; ++line)
    {
        for (char c : text)
        {
            std::cout << alphabet[c - 'A'][line] << "  ";
        }
        std::cout << std::endl;
    }
}
void PrintBigString(const std::string和text)
{
for(int line=0;linestd::cout控制台输出是逐行执行的。因此,您需要按顺序输出所有大号字母的第一行,然后按顺序输出所有字母的第二行,依此类推,在您的情况下,总共6行totalQuick Insights:您必须将每个字符存储到二维数组中,该数组中的每个元素都将无论是a
0
还是
space
,如果必须打印ABC,首先打印a的第0行,然后打印B的第0行和C的第0行,然后继续打印下一行。控制台输出是逐行执行的。因此,您需要按顺序输出所有大字母中的第一行,然后输出第二行按顺序排列的所有字母中的e,以此类推,对于6行totalQuick Insights:您必须将每个字符存储到二维数组中,该数组中的每个元素将是a
0
space
,然后,如果必须打印ABC,则首先打印a的第0行,然后打印B的第0行和0第C行,它们继续打印下一行。我仍然可以用这种方式垂直打印它们吗?如果你一个接一个地打印它们(
PrintBigString(“A”);PrintBigString(“B”);…
)。好吧,我必须使用一个循环来为用户输入,我会尝试,或者可能只是添加“endl”在每个字符串之后:/你能写一个如何水平写“HI”的示例吗?到目前为止,我可以垂直写,我重写了代码,但我不知道如何调用函数来水平打印,我是一个乞丐,但很抱歉
PrintBigString(“HI”)如果你一个接一个地打印它们(
PrintBigString(“A”);PrintBigString(“B”));
),我仍然可以用这种方式垂直打印它们吗?
)。嗯,我必须使用一个循环来为用户输入,我会尝试,或者可能只是在每个字符串后面添加“endl”):你能写一个如何写“HI”的示例吗水平?到目前为止,我可以垂直编写,我重写了代码,但我不知道如何调用函数来水平打印,我是一个乞丐,但很抱歉
PrintBigString(“HI”);
const int LINES_PER_CHAR = 6;
const char* alphabet[][LINES_PER_CHAR] = 
{
    /* A */ { "0000000", "0     0", "0     0", "0000000", "0     0", "0     0" },
    /* B */ { "000 ", "0  0", "0  0", "000 ", "0  0", "0000" }
    ...
};
void PrintBigString(const std::string& text)
{
    for (int line = 0; line < LINES_PER_CHAR; ++line)
    {
        for (char c : text)
        {
            std::cout << alphabet[c - 'A'][line] << "  ";
        }
        std::cout << std::endl;
    }
}
void PrintBigString(const std::string& text)
{
    for (int line = 0; line < LINES_PER_CHAR; ++line)
    {
        for (int i = 0; i < text.size(); ++i)
        {
            std::cout << alphabet[text[i] - 'A'][line] << "  ";
        }
        std::cout << std::endl;
    }
}