| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 01.09.08 Prihlásený: 24.02.11 Príspevky: 103 Témy: 26 Bydlisko: Kosice-okolie |
Mmam taky zadrhel: v knihe mam ulohu: napiste program, kt. precita 3 male pismena a vypise ich ako 3 velke pismena. Prevod z velkych na male sa mi podaril ale z malych na velke to nejako nejde este tam treba do pisat nejaku funkciu, nemam sajnu aku , vie mi prosim niekto pomoct ?
vopred vdaka
prikladam zdrojak:
Kód: #include <stdio.h> #include <stdlib.h> int main (void) { int j, k, l ; j=getchar(); k=getchar(); l=getchar(); printf("%c%c%c\n" , j ,k , l); system ("PAUSE"); return 0; }
|
|
Registrovaný: 14.04.08 Prihlásený: 04.06.16 Príspevky: 700 Témy: 42 Bydlisko: Bratislava | Napísal raf: 02.03.2009 21:33 | |
|
http://www.asciitable.com/ - ak by si k ascii hodnote pismena pripocital/odcital 32, dostal by si velke alebo male pismeno - mozno by to slo tak. A male by si od velkeho odlisil pouzitim podmienky, ze ak ma ascii hodnotu vacsiu ako 96, tak je to male pismeno, inac je to velke. Ale v c velmi neprogramujem, takze neviem presne ako b to bolo.
edit: zmena ascii hodnoty by v c++ mala ist obycajnym pripocitanim 32
_________________ pc: MB: MSI K9N SLi (chipset nvidia nforce 570 SLi), CPU: amd athlon X2 5600+ 2.8 Ghz Windsor chladeny ac freezer 64 pro, ram:2 GB 800Mhz DDR2 A-DATA Vitesta Extreme Edition (2x1GB), grafika: Sapphire Radeon HD 3870 512MB, HDD:Hitachi deskstar SATA2 7200 rpm 500.1GB, PSU: 450W Eurocase |
|
Registrovaný: 01.09.08 Prihlásený: 24.02.11 Príspevky: 103 Témy: 26 Bydlisko: Kosice-okolie | Napísal autor témy mathias: 02.03.2009 22:02 | |
|
no ze zmeni z velkych na male ked priratam 32 som vedel, funkciu pricitanie som zmenil na odcitanie -32 a z malych pismen robi velke vdaka uz to bezi
|
|
Registrovaný: 14.04.08 Prihlásený: 04.06.16 Príspevky: 700 Témy: 42 Bydlisko: Bratislava | Napísal raf: 02.03.2009 22:15 | |
|
Ale mozno na to bude aj nejake elegantnejsie riesenie...
_________________ pc: MB: MSI K9N SLi (chipset nvidia nforce 570 SLi), CPU: amd athlon X2 5600+ 2.8 Ghz Windsor chladeny ac freezer 64 pro, ram:2 GB 800Mhz DDR2 A-DATA Vitesta Extreme Edition (2x1GB), grafika: Sapphire Radeon HD 3870 512MB, HDD:Hitachi deskstar SATA2 7200 rpm 500.1GB, PSU: 450W Eurocase |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
Existuje na to aj makro toupper() z ctype.h, avsak povedal by som, ze robi presne to iste, co pisal raf(inak by to imho ani neslo)...
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 21.05.08 Prihlásený: 04.10.09 Príspevky: 21 Témy: 0 | Napísal J3rGuS: 03.03.2009 17:28 | |
|
Kód: #include <stdio.h>
int main() { int a, x; printf("Zadaj tri pismena\n"); for (x=0; x<3; x++) { a=getchar(); putchar(a^0x20); } return 0; } Prerába malé na veľké a naopak... Je to xor konštanty, kt. bola spomenutá vyššie (32).
|
|
Registrovaný: 04.03.09 Prihlásený: 21.09.13 Príspevky: 24 Témy: 0 |
urcite elegantnejsie a lepsie riesenie je pouzitie toupper() z knihovni ctype() To pripocitanie 32 je prasacke riesenie , pac je to zavisle na zakladnej znakovej sade implementacie, v tomto pripade ASCII
|
|
Registrovaný: 01.09.08 Prihlásený: 24.02.11 Príspevky: 103 Témy: 26 Bydlisko: Kosice-okolie | Napísal autor témy mathias: 05.03.2009 17:14 | |
|
Jaaj super napady dikes moc
|
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|