C# týden ITnetwork Flashka zdarma
Akce! Pouze tento týden sleva až 80 % na kurzy C# .NET. Lze kombinovat s akcí 50 % bodů navíc na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

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.