Zdravým, vedel by mi niekto povedať ako mám vytvoriť banner v jazyku C.
Malo by to fungovať tak, že načíta pole znakov z klávesnice a následne ho vypíše ako pole znakov.
príklad: ak zadám pole : SLON
vypíše : SLON vytvorené z * (hviezdičiek)
a tak ďalej. Skúste aspoň pomôcť z vývojakom, nakodiť to následne už nebude taký problém....
Banner v C
nedavno sme v skole robili podobny priklad v Jave..z textoveho suboru (vid priloha), sme si nacitali retazce do dvojrozmerneho pola (kazde pismeno musi mat vyhradeny rovnaky pocet riadkov v textovom subore a pre kazde bol vyhradeny jeden riadok pola), potom sme vypisovali pole po stlpcoch do riadku, tie pismena, ktore sme potrebovali..
takze najskor si vytvor nejaky txt subor z ktoreho budes nacitavat pismena..prikladam ti aj zdrojak, snad ti to aspon trochu pomoze..
takze najskor si vytvor nejaky txt subor z ktoreho budes nacitavat pismena..prikladam ti aj zdrojak, snad ti to aspon trochu pomoze..
Kód: Vybrať všetko
try {
BufferedReader br = new BufferedReader(new FileReader("font.txt"));
String vstup = JOptionPane.showInputDialog("Vstup: ");
vstup = vstup.toLowerCase();
String[][] pole = new String[26][7];
for(int i=0; i<26; i++) {
for(int j=0; j<7; j++) {
pole[i][j] = br.readLine();
}
}
int[] znaky = new int[vstup.length()];
for(int i=0; i<vstup.length(); i++) {
if(vstup.charAt(i) == ' ')
znaky[i] = -1;
else
znaky[i] = vstup.charAt(i) - 97;
}
for(int j=0; j<7; j++) {
for(int k=0; k<znaky.length; k++) {
if(znaky[k] == -1)
System.out.print(" ");
for(int i=0; i<26; i++) {
if(znaky[k] == i)
System.out.print(pole[i][j] + " ");
}
}
System.out.println();
}
br.close();
}
catch(IOException e) {
System.out.println(e.getMessage());
}- Prílohy
-
- font.rar
- (387 Bajtov) 24 stiahnutí
-
nitrox
Light Star
- Príspevky: 239
- Registrovaný: 26 dec 2006, 21:18
- Bydlisko: BJ
- Kontaktovať používateľa:
podarilo sa mi nakodiť niečo také, len ešte to potrebujem ešte spraviť, aby mi vypísalo znaky vedľa seba, a nie pod seba.... ako to mám spraviť ???
Kód: Vybrať všetko
#include <stdio.h>
#include <stdlib.h>
char pismena[26][6][7] =
{
{
" **** ",
"******",
"** **",
"******",
"** **",
"** **"
},
.
.
.
{
"******",
" **",
" ** ",
" ** ",
"** ",
"******"
},
};
void vypis(char c);
int main()
{
int i;
char vstup[100];
printf("\n Zadaj retazec zlozeny z malych znakov bez medzery: ");
scanf("%s",vstup);
printf("\n");
for (i=0; i<strlen(vstup); i++)
{
vypis(vstup[i]);
}
system("pause");
}
void vypis(char c)
{
int i;
char znak = c-'a';
if ((znak>25)||(znak<0))
{
printf("\n -------------------------------- ");
printf("\n|Chyba, bol zadany VELKY znak. |");
printf("\n -------------------------------- \n\n");
return 0;
}
for (i=0;i<6;i++)
{
printf("%s\n",pismena[znak][i]);
}
printf("\n");
}
Funkcia vypis by mala vyzerat nejako takto: Ale nieje tam ziadna kontrola medzi, ked prekrocis sirky konzoly, tak to zacne vypisovat bludy 
A vstupny parameter fcie je cely ten retazec... Mozes tam dorobit kontrolu ci je vstup malymi pismenami.
Kód: Vybrať všetko
void vypis(char string[100])
{
int i,j,k;
int znak;
for ( j = 0; j < 6; j++ ) {
for ( k = 0; k < strlen(string); k++ ) {
znak = string[k] - 'a';
printf("%s ", pismena[znak][j]);
}
putchar('\n');
}
putchar('\n');
}A vstupny parameter fcie je cely ten retazec... Mozes tam dorobit kontrolu ci je vstup malymi pismenami.