Avatar
majklvorisek
Člen
Avatar
majklvorisek:

Zdravím potřeboval bych Poct s úkolem. Program má změnit všechna malá písmena na velká a místo mezer má být _. Příklad:
Programování v jazyku c++
//Se změní na:
PROGRAMOVÁNÍ_V_JA­ZYKU_C++

Dík za pomoc

 
Odpovědět 20.4.2014 17:06
Avatar
Libor Šimo (libcosenior):

A čo si už nakódil?

Nahoru Odpovědět 20.4.2014 17:19
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
majklvorisek
Člen
Avatar
majklvorisek:

Problém je že nevím jak pořádně začít.

 
Nahoru Odpovědět 20.4.2014 17:26
Avatar
Odpovídá na majklvorisek
Ondřej Štorc:

Koukni se na ASCII tabulku.

Nahoru Odpovědět 20.4.2014 17:28
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Libor Šimo (libcosenior):
- 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. ;-)

Nahoru Odpovědět 20.4.2014 17:44
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
majklvorisek
Člen
Avatar
majklvorisek:

Dík

 
Nahoru Odpovědět 20.4.2014 17:48
Avatar
Odpovídá na majklvorisek
Libor Šimo (libcosenior):

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).

Nahoru Odpovědět 20.4.2014 18:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):
#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ť.

Editováno 20.4.2014 18:40
Nahoru Odpovědět 20.4.2014 18:37
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na majklvorisek
Libor Šimo (libcosenior):

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]);
Nahoru Odpovědět 20.4.2014 19:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
majklvorisek
Člen
Avatar
majklvorisek:

Díky moc za pomoc.

 
Nahoru Odpovědět 20.4.2014 20:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.