Jak z wczytanego tekstu wygenerować napis

0

Witam.

Mam napisać program w C. Program prosi o napis do wyświetlenia i ma go wyświetlić jakimiś ozdobnymi literami. Zrobiłem sobie takie tablice z $ np.:

char *A1=("      $       ");
char *A2=("     $ $      ");
char *A3=("    $   $     ");
char *A4=("   $     $    ");
char *A5=("  $$$$$$$$$ ");
char *A6=(" $         $  ");
char *A7=("$           $ ");

Siedem tablic jako jedna literka. I teraz jak wczytam tekst z klawiatury, to nie wiem co zrobić, żeby program sprawdził każdą literkę i zamienił ją na tą tablicę. Załóżmy, że wpiszę abba to chciałbym żeby wypisały się te literki obok siebie. Wiem jak je połączyć ale nie wiem jak to zrobić, żeby sprawdzić po literce z tekstu i wygenerować napis.

Proszę o pomoc.

0

Pomoże ktokolwiek ?

0

Jeśli zrobiłeś już każdą literkę z dolarami to teraz najlepiej jak byś wstawił każdą literkę do dwuwymiarowej tablicy wskaźników.

char *A1=("      $       ");
char *A2=("     $ $      ");
char *A3=("    $   $     ");
char *A4=("   $     $    ");
char *A5=("  $$$$$$$$$ ");
char *A6=(" $         $  ");
char *A7=("$           $ ");

// tutaj twoje pozostałe literki

// 26 - znaki alfabetu bez polskich znaków i rozróżniania wielkości liter
// 7 - ilość stringów na literkę
char * znaki[26][7];

// teraz kolejno wstawiasz znaki do tablicy zaczynając alfabetycznie od A
znaki[0][0] = A1;
znaki[0][1] = A2;
znaki[0][2] = A3;
znaki[0][3] = A4;
znaki[0][4] = A5;
znaki[0][5] = A6;
znaki[0][6] = A7;

znaki[1][0] = B1;
znaki[1][1] = B2;
znaki[1][2] = B3;
znaki[1][3] = B4;
znaki[1][4] = B5;
znaki[1][5] = B6;
znaki[1][6] = B7;

// i tak dalej z pozostałymi znakami

Jak już przygotujesz taką tablicę to w pętli wypisujesz kolejno jej zawartość


// zakładam że wszystkie znaki są wielkimi literami
void wypisz(const char * tekst, int dlugosc)
{
    int i;
    int j;
    for (j = 0; j < 7; j++)
    {
        for (i = 0; i < dlugosc; i++)
        {
            printf("%s", znaki[tekst[i] - 65][j]);
        }
        printf("\n");
    }
}
0

Dzięki, jak wrócę z zajęć to zastosuje.

0

Taki problem

0

zobacz co wpisałeś w linii 399

0

Jak tego nie ma to jest tak:

0

W moim pierwszym poście masz przykład jak ta zmienna powinna wyglądać

char * znaki[26][7];

Masz też napisane jak wstawić do niej dane.

0

Już sobie poradziłem. Użyłem funkcji snprintf i strcat. Wszystko śmiga.

Dziękuję za zainteresowanie tematem. Można zamknąć temat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1