>> DAVID J. Malan: Dejme tomu, že bych chtěl realizovat program, který vyzve
uživatel na řetězec a pak pokračuje využít jejich přínos,
Převod jakékoli malá písmena že typ na velká písmena.
Dobře, pojďme do toho a provádění tohoto programu.
>> Pojďme si nejprve jsou následně cs50.h které zahrnují stdio.h.
A tak, že můžeme použít strlen, pojďme patří string.h.
>> Pojďme další deklarovat hlavní jako int main prázdno a pojďme nyní pokračovat na výzvu
uživatel na provázku.
Printf, pojďme vyzve je pro nějaký vstup.
Nyní pojďme deklarovat řetězec -
zavoláme je to -
a uložit do ní výsledek volání CS50 knihovna funkce GetString.
>> Pojďme se nyní přistoupit k iteraci každý z charakterů v s, vydělávat
nějaké malá písmena, které vidíme.
Pro int, i se 0.
Pojďme se také prohlásit n jako je rovna délka řetězce s, takže můžeme
iterovat od i až do n, délka S, a na každém
iterace přírůstek i.
>> A pak se uvnitř této smyčky, pojďme První kontrola je aktuální písmeno -
i-tý písmeno s, abych tak řekl -
malé písmeno.
Je-li s konzola i je větší než nebo rovno na malá písmena, a to je méně
než nebo rovnající se malým Z -
Nyní, pokud chceme převést na malá písmena Dopis na velká písmena, připomenout zaprvé, že
v ASCII malá 97 a velká 65.
Mezitím, malými písmeny b je 98, a velká písmena B je 66.
>> Pokud budeme i nadále hledat v této struktuře, uvidíme, že malá
písmena jsou vždy 32 vyšších hodnot než velká písmena.
Takže pokud chceme převést z malých písmen na velká písmena, by měl
stačí, opravdu, odečíst 32 od vstupu uživatele.
Nebo obecněji, jen odečíst, že Rozdíl mezi malými písmeny A a A
kapitál A.
>> Jak vyjádřit, že?
Dobře, pojďme to udělat v kódu.
Printf, citace, konec citátu "% c" k tisku aktuální znak, následovaný
tisk bez ohledu na to v s držákem i mínus Výsledkem dělá malá písmena A
minus velká písmena A středník.
Jinými slovy, tento závorkách výraz, trochu minus velký, je
chystá se vrátit k nám na konec dne 32..
Ale já nemusím pamatovat že je to 32.
Nemohu dovolit počítač přijít na to, , jaký je rozdíl mezi malými písmeny
a kapitálu je.
>> Mezitím, když jsem vědět, že rozdíl, I to může odečíst od s
držák i, který bude mít to, co je pravděpodobně malé písmeno na
nižší hodnota, a to hodnota, která mapuje na s velkým ekvivalent.
Pojďme nyní uložit, zkompilovat, a spustit tento program.
Ujistěte se vydělávat tečka lomítko aktivovány.
A můj vstup bude ahoj.
A tady to máme, ahoj.
>> Teď moje výzva, pravda, je trochu ošklivá, protože máme
vynechat jeden bit tisku.
A vraťme se a dodává, že.
Na samém konci tohoto programu, Jsem velmi jednoduše, a do značné míry na
estetický účel, přidáme printf, citace, konec citátu zpětné lomítko n.
Pojďme znovu uložit tento soubor, překompilovat, opakování.
>> Ujistěte se vydělávat, tečka lomítko vydělat.
Opět platí, že pro vstup budu poskytovat "ahoj" ve všech malými písmeny a nyní stiskněte klávesu Enter,
a "ahoj", mnohem čistěji vytisknout.