Vajíčková mánie Vajíčková mánie
Od 15. do 21.4. slevy 20 až 80% v sekci C/C++. Když ne teď, tak kdy?
Vyšlehej si extra vědomosti! Až 100% bodů na prémiový obsah zdarma! Více zde

Diskuze: Pomoc s úkolem nebo jak napsat makro

Aktivity (2)
Avatar
nemec.radovan:1.11.2018 14:25

Ahoj, potřeboval bych pomoct s úkolem, v C jsem začátečník. Tak spíš bych potřeboval nějaký náznak jak se co zapisuje.

Úkol je takový:
Makro s parametrem, které převede anglické znaky (malá písmena) ‘a’ až ‘z’ na znaky ‘A’ až ‘Z’ (velká písmena). Například zadáme-li do parametru makra znak ‘d’, převede jej makro na znak ‘D’. Makro vyzkoušejte ve funkci main.

Zkusil jsem: Kód pro main, ale nevím jak ho přepsat do makra.

#include <stdio.h>
#include <ctype.h>

int main(void)
{
int i;
char vstup[255], vystup[255];

printf("Zadej symbol: ");
gets(vstup);

while (vstup[i] != '\0'){
vystup[i] = toupper(vstup[i­]),i++;
}

vystup[i] != '\0';
printf("Vypsany symbol: %s\n",vystup);
return 0;
}

Chci docílit: Kdyby se tu našla dobrá duše a poradila mi jak vytvořit makro pro tento úkol ? Předem všem děkuji

 
Odpovědět 1.11.2018 14:25
Avatar
DarkCoder
Člen
Avatar
Odpovídá na nemec.radovan
DarkCoder:1.11.2018 15:00

Takto:

#define TOUPPER(x) (('a' <= (x) && (x) <= 'z') ? (((x) - 'a') + 'A') : (x))
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět  +2 1.11.2018 15:00
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
Odpovídá na DarkCoder
nemec.radovan:1.11.2018 20:46

Super, děkuji :)

 
Nahoru Odpovědět 1.11.2018 20:46
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 3 zpráv z 3.