1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. MALAN: Supponiamo che vorrei di attuare un programma che richiede 3 00:00:03,190 --> 00:00:06,650 all'utente una stringa e poi procede di capitalizzare il loro contributo, 4 00:00:06,650 --> 00:00:09,790 convertendo tutte le lettere minuscole che tipo maiuscolo. 5 00:00:09,790 --> 00:00:11,770 Bene, andiamo avanti e attuare tale programma. 6 00:00:11,770 --> 00:00:18,760 >> Facciamo prima includono cs50.h seguito da includere stdio.h. 7 00:00:18,760 --> 00:00:23,990 E così che possiamo usare strlen, cerchiamo di includere string.h. 8 00:00:23,990 --> 00:00:29,860 >> Facciamo il prossimo dichiarare principale int void main e andiamo ora procediamo per richiedere 9 00:00:29,860 --> 00:00:31,600 l'utente per una stringa. 10 00:00:31,600 --> 00:00:34,840 Printf, diamo loro il prompt per alcuni input. 11 00:00:34,840 --> 00:00:36,460 Ora cerchiamo di dichiarare una stringa - 12 00:00:36,460 --> 00:00:37,630 che chiameremo s - 13 00:00:37,630 --> 00:00:44,010 e memorizzare in essa il risultato della chiamata la funzione GetString biblioteca CS50. 14 00:00:44,010 --> 00:00:48,850 >> Procediamo ora ad iterare ogni dei personaggi di s, capitalizzando 15 00:00:48,850 --> 00:00:50,650 tutte le lettere minuscole che vediamo. 16 00:00:50,650 --> 00:00:53,630 Per int, ottengo 0. 17 00:00:53,630 --> 00:00:58,780 Facciamo anche dichiarare n sia uguale al la lunghezza della stringa s in modo che possiamo 18 00:00:58,780 --> 00:01:03,590 scorrere da I fino n, la lunghezza di s, e su ciascun 19 00:01:03,590 --> 00:01:05,760 iterazione incremento i. 20 00:01:05,760 --> 00:01:09,970 >> E poi all'interno di questo ciclo, andiamo primo controllo è la lettera corrente - 21 00:01:09,970 --> 00:01:12,270 la lettera i-esimo di s, per così dire - 22 00:01:12,270 --> 00:01:14,170 una lettera minuscola. 23 00:01:14,170 --> 00:01:23,090 Se staffa s i è maggiore o uguale in caratteri minuscoli una, ed è meno 24 00:01:23,090 --> 00:01:26,900 o uguale a z minuscola - 25 00:01:26,900 --> 00:01:30,860 Ora, se vogliamo convertire un minuscolo lettera in maiuscolo, ricordare in primo luogo che 26 00:01:30,860 --> 00:01:35,810 in ASCII un minuscolo a è 97 e una A maiuscola è di 65 anni. 27 00:01:35,810 --> 00:01:41,020 Nel frattempo, una minuscola b è 98, ed una B maiuscola è 66. 28 00:01:41,020 --> 00:01:44,180 >> Se continuiamo a guardare a quel modello, vedremo che il minuscolo 29 00:01:44,180 --> 00:01:49,240 lettere sono sempre 32 valori superiori che le lettere maiuscole. 30 00:01:49,240 --> 00:01:53,490 Quindi, se vogliamo convertire da minuscolo in maiuscolo, dovrebbe 31 00:01:53,490 --> 00:01:57,210 sufficiente, in realtà, per sottrarre 32 dall'input dell'utente. 32 00:01:57,210 --> 00:02:01,330 O, più generalmente, basta sottrarre che differenza tra una minuscola e un 33 00:02:01,330 --> 00:02:02,310 capitale A. 34 00:02:02,310 --> 00:02:03,410 >> Come esprimere questo? 35 00:02:03,410 --> 00:02:04,640 Bene, facciamolo nel codice. 36 00:02:04,640 --> 00:02:09,960 Printf, citazione, unquote "% c" per la stampa il carattere corrente, seguito da 37 00:02:09,960 --> 00:02:18,500 stampa tutto quello che è nel supporto s i meno il risultato di fare un minuscolo 38 00:02:18,500 --> 00:02:22,660 meno maiuscolo Un punto e virgola. 39 00:02:22,660 --> 00:02:27,010 In altre parole, questa parentesi espressione, poco meno di una grande A, è 40 00:02:27,010 --> 00:02:29,360 intenzione di tornare a noi a Alla fine della giornata 32. 41 00:02:29,360 --> 00:02:31,230 Ma io non devo ricordare che è 32. 42 00:02:31,230 --> 00:02:34,150 Posso permettere al computer di capire ciò la differenza tra minuscolo 43 00:02:34,150 --> 00:02:35,990 una e maiuscola è. 44 00:02:35,990 --> 00:02:39,610 >> Nel frattempo, una volta che so che la differenza, Posso sottrarre da s 45 00:02:39,610 --> 00:02:43,710 Staffa i, che avrà ciò che è presumibilmente una lettera minuscola per un 46 00:02:43,710 --> 00:02:48,100 valore più basso, cioè un valore che mappa su un equivalente maiuscolo. 47 00:02:48,100 --> 00:02:51,240 Vediamo ora salvare, compilare, ed eseguire questo programma. 48 00:02:51,240 --> 00:02:57,760 Fai capitalizzare dot barra capitalizzati. 49 00:02:57,760 --> 00:03:01,290 E il mio ingresso sarà ciao. 50 00:03:01,290 --> 00:03:02,920 E lì abbiamo, ciao. 51 00:03:02,920 --> 00:03:05,570 >> Ora la mia richiesta, è vero, è un po 'brutto, perché abbiamo 52 00:03:05,570 --> 00:03:07,810 omesso un po 'di stampa. 53 00:03:07,810 --> 00:03:09,370 E torniamo e aggiungono che. 54 00:03:09,370 --> 00:03:12,890 Al fondo di questo programma, Sono molto semplice, e in gran parte per 55 00:03:12,890 --> 00:03:18,440 scopo estetico, andando ad aggiungere printf, citazione, unquote backslash n. 56 00:03:18,440 --> 00:03:22,330 Cerchiamo di salvare nuovamente il file, ricompilare, rieseguire. 57 00:03:22,330 --> 00:03:28,090 >> Fai capitalizzare, barra dot capitalizzare. 58 00:03:28,090 --> 00:03:32,540 Ancora una volta, per l'ingresso vi fornirò "ciao" in tutto in minuscolo e ora premere Invio, 59 00:03:32,540 --> 00:03:34,550 e "ciao," molto più pulito stampata. 60 00:03:34,550 --> 00:03:36,432