>> David J. MALAN: Să presupunem că aș vrea să pună în aplicare un program care solicită
utilizatorul pentru un șir și apoi purcede pentru a valorifica de intrare a acestora,
Conversia orice litere mici care au tip de majuscule.
Ei bine, să mergem mai departe și punerea în aplicare a acestui program.
>> Să se numără în primul rând cs50.h urmat de includ stdio.h.
Și astfel încât să putem folosi strlen, hai includ string.h.
>> Să următor declara principal void main int și hai acum continua pentru a solicita
utilizatorul pentru un șir.
Printf, să-i determine pentru unele de intrare.
Acum, haideți să declare un șir de caractere -
vom numi aceasta e -
și se păstrează în ea rezultatul de asteptare bibliotecă CS50 funcție getString.
>> Să acum proceda pentru a itera peste fiecare din personajele s, valorificarea
orice litere mici pe care le vedem.
Pentru Int, I a lua 0.
Să declare, de asemenea, n ca fiind egală cu lungimea șir de s astfel încât să putem
repeta de la i până la n, lungimea s, iar pe fiecare
i repetare creștere.
>> Și apoi în interiorul această buclă, să verificați mai întâi este litera de curent -
litera i-lea al lui, ca să spunem așa -
o literă mică.
Dacă s bracket i este mai mare sau egal în litere mici o, și este mai puțin
mare sau egal cu z litere mici -
Acum, dacă vrem pentru a converti o litere mici scrisoare de majuscule, amintim în primul rând că
într-un ASCII litere mici o este de 97 și o majusculă A este de 65.
Între timp, o minusculă b este de 98, și o majuscule B este 66.
>> Dacă vom continua să se uite la acel model, vom vedea că minuscule
scrisori sunt întotdeauna 32 de valori mai mari decât litere majuscule.
Deci, dacă vrem pentru a converti de la litere mici în majuscule, ar trebui
suficient, într-adevăr, pentru a scădea 32 de la intrare a utilizatorului.
Sau mai mult, în general, doar că scade diferență între un minuscule o și o
de capital A.
>> Cum să-și exprime asta?
Ei bine, hai să o facem în cod.
Printf, citez, citatul "% c" pentru a imprima caracterul curent, urmat de
imprimarea orice e în s suport i minus Rezultatul a face o literă mică
minus majuscule punct și virgulă.
Cu alte cuvinte, această paranteză expresie, puțin un minus mare A, este
de gând să se întoarcă la noi la sfârșitul zilei 32.
Dar nu am să vă amintiți că este 32.
Eu pot permite computerului să dau seama ceea ce diferența dintre minuscule
o și de capital A este.
>> Între timp, o dată știu că diferență, Eu pot scădea de la s
suport i, care va avea ceea ce-i probabil o literă mică pentru o
valoare mai mică, și anume o valoare care hărți pe un echivalent majuscule.
Să acum salva, compila, și a alerga acest program.
Face valorifica punct slash capitalizate.
Și de intrare mea va fi salut.
Și aici avem, salut.
>> Acum promptă mea, desigur, este un pic urât, pentru că ne-am
omis un pic de imprimare.
Și să ne întoarcem și adaugă că.
În partea de jos a acestui program, Sunt foarte simplu, și în mare măsură de
scop estetic, de gând să adăugați printf, citat, citatul backslash n.
Să salvați din nou acest fișier, recompilați, reluare.
>> Face valorifica, slash punct valorifica.
Din nou, pentru intrare voi oferi "hello" în toate cazurile mai mici, iar acum a lovi Enter,
și "salut", mult mai curat imprimate.