Jak z wczytanego tekstu wygenerować napis

Jak z wczytanego tekstu wygenerować napis
HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
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.

HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Pomoże ktokolwiek ?

AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
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.

Kopiuj
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ść

Kopiuj

// 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");
    }
}
HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

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

  • Rejestracja: dni
  • Ostatnio: dni
0

Taki problem

AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

zobacz co wpisałeś w linii 399

  • Rejestracja: dni
  • Ostatnio: dni
0

Jak tego nie ma to jest tak:

AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

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

Kopiuj
char * znaki[26][7];

Masz też napisane jak wstawić do niej dane.

HA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.