Diskuze: Úkol změna velikosti písma
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
A čo si už nakódil?
Problém je že nevím jak pořádně začít.
- inkluduješ potrebné knižnice
- funkcia main
{
- definuješ potrebné premenné
- vypíšeš na obrazovku: "Zadajte vetu a ja ju upravim tak, ze vypisem vsetky pismena velke a medzery zmenim na podtrzniky: "
- vyžiadaš od užívateľa vstup vo formáte reťazec.
- v cykle prejdeš zadaný reťazec, postupne zmeníš malé písmená na veľké a medzery na podtržníky
{
- použiješ podmienku: ak je písmeno malé,
- zmeň ho na velké
- alebo ak je znak ' ' teda medzera,
- zmeň ju na podtržník
- ak nie je splnená ani jedna z uvedených podmienok,
- nechaj znak bez zmeny.
}
Poznámka: všetko to prepisuješ do nového reťazca.
- reťazec ukončíš znakom '\0'
- vypíšeš na obrazovku zmenený reťazec
}
Hotovo.
Na zmenu písmen si includuj knižnicu ctype.h a použi z nej makro islower() - (ak je znak malé písmeno) a makro toupper() - (zmeň znak na veľké pismeno).
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int i;
char vstup[80], vystup[80];
printf("Zadajte vstupnu vetu: ");
gets(vstup);
while (vstup[i] != '\0') {
vystup[i] = islower(vstup[i]) ? toupper(vstup[i]) : vstup[i] == ' ' ? '_' : vstup[i];
i++;
}
vystup[i] = '\0';
printf("Vystup je: %s\n", vystup);
return 0;
}
Pozor, nefunguje to na písmená s diakritikou. S tým sa mi už nechcelo hrať.
Ten terárny operátor sa dá skrátiť, pretože makro toupper() reaguje iba na malé písmená nasledovne:
vystup[i] = vstup[i] == ' ' ? '_' : toupper(vstup[i]);
Zobrazeno 10 zpráv z 10.