1 00:00:00,000 --> 00:00:02,490 [Powered by Google Translate] [CS50 Library] 2 00:00:02,490 --> 00:00:04,220 [Nate Hardison] [Harvardeko Unibertsitateko] 3 00:00:04,220 --> 00:00:07,260 [Hau CS50 da. CS50.TV] 4 00:00:07,260 --> 00:00:11,510 CS50 liburutegi tresna lagungarria da tresnaren instalatu dugun 5 00:00:11,510 --> 00:00:15,870 programak idazteko erraztea da sarrera erabiltzaile abisua. 6 00:00:15,870 --> 00:00:21,670 Bideo honetan, tira itzuli gara oihala eta zer zehazki CS50 liburutegian begiratu. 7 00:00:21,670 --> 00:00:25,520 >> C liburutegiak bideoa, hitz egin dugu nola sartzeko goiburu fitxategiak 8 00:00:25,520 --> 00:00:27,570 iturburu-kodea liburutegia, 9 00:00:27,570 --> 00:00:31,150 eta, ondoren, liburutegi fitxategi bitar-lotzen fasean 10 00:00:31,150 --> 00:00:33,140 konpilazio prozesuak. 11 00:00:33,140 --> 00:00:36,440 Goiburu fitxategiak zehaztu liburutegian interfazean. 12 00:00:36,440 --> 00:00:41,280 Hau da, liburutegia baliabide guztiak ditu eskuragarri erabili nahi duzun zehatz-mehatz dute, 13 00:00:41,280 --> 00:00:45,250 funtzioa-aitorpenak, konstanteak, eta datu-mota bezala. 14 00:00:45,250 --> 00:00:48,890 Bitarra liburutegia liburutegia ezartzeko badu, 15 00:00:48,890 --> 00:00:54,580 liburutegiko goiburua fitxategiak eta liburutegiaren c iturburu-kodea fitxategiak konpilatu. 16 00:00:54,580 --> 00:00:59,820 >> Bitarra liburutegia ez da oso interesgarria begiratzen da, izan ere, 'binary. 17 00:00:59,820 --> 00:01:03,300 Beraz, dezagun liburutegia fitxategiak goiburua ordez begirada bat. 18 00:01:03,300 --> 00:01:07,710 Kasu honetan, ez dago bakarra goiburua izeneko fitxategi cs50.h. 19 00:01:07,710 --> 00:01:11,040 Instalatuko dugu besteak beste, erabiltzailearen direktorioa 20 00:01:11,040 --> 00:01:15,150 beste sistema liburutegiak 'goiburu fitxategiak batera. 21 00:01:15,150 --> 00:01:21,530 >> Nabarituko duzu lehen gauza bat da cs50.h # goiburua beste liburutegi fitxategiak 22 00:01:21,530 --> 00:01:25,670 float, mugak, standard nuen, eta estandar lib. 23 00:01:25,670 --> 00:01:28,800 Gurpila estilu printzipioa jarraituz, 24 00:01:28,800 --> 00:01:33,490 eraiki dugu beste tresna batzuk Gurekin erabiliz CS0 liburutegia. 25 00:01:33,490 --> 00:01:38,690 >> En la biblioteca ikusiko dituzu hurrengo gauza da definitzen dugun izeneko mota berri bat "katea." 26 00:01:38,690 --> 00:01:42,330 Lerro honek benetan just * char mota ezizen bat sortzen, 27 00:01:42,330 --> 00:01:46,000 beraz, ez da magikoki imbue atributuak katea mota berri 28 00:01:46,000 --> 00:01:49,650 normalean katea beste hizkuntza batzuetan objektu lotutako 29 00:01:49,650 --> 00:01:50,850 hala nola, luzera. 30 00:01:50,850 --> 00:01:55,180 Egin dugu honen arrazoia da, programatzaileak armarria berrien góry xehetasunak 31 00:01:55,180 --> 00:01:57,580 erakusleak dira prest arte. 32 00:01:57,580 --> 00:02:00,130 >> Goiburu-fitxategia hurrengo funtzioen adierazpen 33 00:02:00,130 --> 00:02:04,410 CS50 liburutegia dokumentazio batera eskaintzen du. 34 00:02:04,410 --> 00:02:06,940 Iragarki xehetasun maila iruzkinak hemen. 35 00:02:06,940 --> 00:02:10,560 Hau da super garrantzitsua da, beraz, jendeak jakin nola funtzio hauek erabiltzeko. 36 00:02:10,560 --> 00:02:19,150 Aldarrikatzen dugu, aldi berean, erabiltzaileak eta bueltan karakteretan, bikoiztu, karroza, ints gonbita funtzionatzen, 37 00:02:19,150 --> 00:02:24,160 luze Longs, eta kateak, gure kate-mota erabiliz. 38 00:02:24,160 --> 00:02:26,260 Informazioa ezkutatzea printzipioa jarraituz, 39 00:02:26,260 --> 00:02:31,640 jarri dugu gure definizioa bat bereizi c ezartzeko fitxategia cs50.c-- 40 00:02:31,640 --> 00:02:35,110 Erabiltzaile iturburu direktorioan kokatzen da. 41 00:02:35,110 --> 00:02:38,040 Fitxategi hori eman dugu, beraz, itxura bat hartu ahal izango duzu ere. 42 00:02:38,040 --> 00:02:41,490 ikasteko, eta birkonpilatzeko makina ezberdinetan, nahi izanez gero, 43 00:02:41,490 --> 00:02:45,510 nahiz eta hobe da tresna klase honetan lan egin uste dugu. 44 00:02:45,510 --> 00:02:47,580 Dena den, dezagun begirada bat. 45 00:02:49,020 --> 00:02:54,620 >> Funtzioak GetChar, GetDouble, GetFloat, GetInt, eta GetLongLong 46 00:02:54,620 --> 00:02:58,160 funtzioa GetString gainean eraiki zen. 47 00:02:58,160 --> 00:03:01,510 Bihurtzen da, guztiak direla funtsean berdina eredua jarraitu. 48 00:03:01,510 --> 00:03:04,870 Bitartean begizta bat erabiltzen dute sarrera-lerro bat erabiltzaileari galdetuko. 49 00:03:04,870 --> 00:03:08,430 Erabiltzaileak input lerro huts bat izanez gero, balio berezi bat itzuliko dute. 50 00:03:08,430 --> 00:03:11,750 Erabiltzailearen sarrera analizatu motaren arabera saiatuko dira, 51 00:03:11,750 --> 00:03:15,010 izango da karakterra, bikoitz bat, mugikor bat, eta abar. 52 00:03:15,010 --> 00:03:18,710 Eta gero itzuli edo sarrera zuzen analizatu 53 00:03:18,710 --> 00:03:21,330 edo erabiltzailea reprompt dute. 54 00:03:21,330 --> 00:03:24,230 >> Maila altua, hemen ez dago ezer benetan delikatua da. 55 00:03:24,230 --> 00:03:28,760 Idatzi dezakezu, era berean, egituratutako kodea bakarrik iraganean. 56 00:03:28,760 --> 00:03:34,720 Agian gehien parte críptica begira dei erabiltzailearen sarrera parses duen sscanf da. 57 00:03:34,720 --> 00:03:38,160 Sscanf sarrerako formatua bihurketa familiaren zati bat da. 58 00:03:38,160 --> 00:03:42,300 Standard io.h bizi da, eta bere lana da, C kate bat analizatu, 59 00:03:42,300 --> 00:03:46,520 formatu jakin baten arabera, aldakorra emaitzak parse gordetzeko 60 00:03:46,520 --> 00:03:48,720 deitzaileari emandako. 61 00:03:48,720 --> 00:03:53,570 Sarrerako formatua bihurketa funtzioak oso erabilgarriak dira, asko erabiltzen den funtzio direnez 62 00:03:53,570 --> 00:03:56,160 ez dira super intuitiboa lehen at, 63 00:03:56,160 --> 00:03:58,300 joan beharko dugu nola sscanf funtzionatzen. 64 00:03:58,300 --> 00:04:03,330 >> Sscanf lehen argumentua da char * karaktere bat erakuslea. 65 00:04:03,330 --> 00:04:05,150 Funtzioa behar bezala lan egiteko, 66 00:04:05,150 --> 00:04:08,340 pertsonaia bat C Kate baten lehen karakterea izan behar du, 67 00:04:08,340 --> 00:04:12,270 \ null izaera 0 amaitu. 68 00:04:12,270 --> 00:04:15,120 Katea analizatu 69 00:04:15,120 --> 00:04:18,269 Sscanf argudio bigarren formatu katea da, 70 00:04:18,269 --> 00:04:20,839 normalean kate-konstante bat igaro ondoren, 71 00:04:20,839 --> 00:04:24,040 eta ikusi izan liteke hau atsegin katea printf erabiliz aurretik. 72 00:04:24,040 --> 00:04:28,650 Formatu katea saioa ehuneko A bihurketa adierazlea bat adierazten du. 73 00:04:28,650 --> 00:04:30,850 Pertsonaia berehala ehuneko ikurra ondoren, 74 00:04:30,850 --> 00:04:35,430 C mota nahi dugun sscanf bihurtzeko adierazten du. 75 00:04:35,430 --> 00:04:40,090 GetInt, ez dagoela% d eta% c ikusiko duzu. 76 00:04:40,090 --> 00:04:48,690 Horrek esan nahi du, sscanf dela hamartar int saiatu -% d - eta char bat -% c. 77 00:04:48,690 --> 00:04:51,510 Formatu katea adierazlea bihurketa bakoitzean, 78 00:04:51,510 --> 00:04:56,620 sscanf espero dagokion argumentu bat geroago bere argumentua zerrendan. 79 00:04:56,620 --> 00:05:00,850 Argumentua behar dela kokapen egokia idatzitako bat seinalatu 80 00:05:00,850 --> 00:05:04,000 bihurketa emaitza gordetzeko. 81 00:05:04,000 --> 00:05:08,910 >> Hau egiteko modu tipikoa da, aldagai bat sortzeko pilaketan sscanf dei aurretik 82 00:05:08,910 --> 00:05:11,440 katea analizatu nahi duzun elementu bakoitza 83 00:05:11,440 --> 00:05:15,520 eta, ondoren, erabili helbide operadorea ampersand - erakusleak pasatzeko 84 00:05:15,520 --> 00:05:19,100 aldagai berri horien, sscanf deia. 85 00:05:19,100 --> 00:05:22,720 GetInt zehazki egiten dugu hau ikus dezakezu. 86 00:05:22,720 --> 00:05:28,240 Eskuin sscanf dei aurretik, int izeneko n eta pilaketan dei char c aldarrikatzen dugu, 87 00:05:28,240 --> 00:05:32,340 eta horien erakusle pasatzen dugu sscanf deialdian sartu. 88 00:05:32,340 --> 00:05:35,800 Aldagai horiek part pilaketan esleitutako lekua erabiliz nahiago 89 00:05:35,800 --> 00:05:39,350 malloc zeure, malloc deia goiburu saihesteko geroztik, 90 00:05:39,350 --> 00:05:43,060 eta ez duzu memoria leaking kezkatu. 91 00:05:43,060 --> 00:05:47,280 Ez da ehuneko ikurra aurrizki Pertsonaiak ez galdetu bihurketa. 92 00:05:47,280 --> 00:05:50,380 Beharrean formatu zehaztapen besterik ez dute gehitzeko. 93 00:05:50,380 --> 00:05:56,500 >> Adibidez, kate formatua GetInt ziren% d bat izanez gero, horren ordez, 94 00:05:56,500 --> 00:05:59,800 sscanf gutun int bat bilatzeko, 95 00:05:59,800 --> 00:06:04,360 eta int bihurtzeko saiatuko bitartean, ez litzateke beste edozer bat. 96 00:06:04,360 --> 00:06:07,440 Honen salbuespen bakarra zuriunez da. 97 00:06:07,440 --> 00:06:11,030 White espazioa formatu katea karaktere zuriuneak zenbatekoa edozein dator - 98 00:06:11,030 --> 00:06:12,890 are none guztiak. 99 00:06:12,890 --> 00:06:18,100 Beraz, zergatik comment aipatzen ziurrenik liderra eta / edo zuriuneak amaierako. 100 00:06:18,100 --> 00:06:22,910 Beraz, puntu hau begiratzen gure sscanf dei bezala, erabiltzaileak sarrera-katea analizatu saiatuko da 101 00:06:22,910 --> 00:06:25,380 liderra posible zuriunez egiaztapena, 102 00:06:25,380 --> 00:06:29,300 bihurtuko da eta aldagai int n gordetako int ondoren 103 00:06:29,300 --> 00:06:33,090 zuriunez zenbatekoa batzuk jarraian, eta karaktere bat, eta jarraian 104 00:06:33,090 --> 00:06:35,810 char c aldagaia gordetzen da. 105 00:06:35,810 --> 00:06:37,790 >> Itzultzen den balioa zer? 106 00:06:37,790 --> 00:06:41,560 Sscanf sarrerako lerroan analizatu hasiko da eta bukatu, 107 00:06:41,560 --> 00:06:44,860 den amaierara iristean gelditu denean, edo pertsonaia bat sarrera 108 00:06:44,860 --> 00:06:49,320 ez dator bat formatu pertsonaia bat denean, edo ezin da bihurketa bat egiteko. 109 00:06:49,320 --> 00:06:52,690 Denean gelditu bakar itzuli balioa erabiltzen da. 110 00:06:52,690 --> 00:06:55,670 Gelditu bada, sarrerako kate amaiera iritsi delako 111 00:06:55,670 --> 00:07:00,630 bihurketa edozein egin aurretik eta formatu katea zati bat huts egin aurretik, 112 00:07:00,630 --> 00:07:04,840 gero berezia etengabeko EOF itzuliko da. 113 00:07:04,840 --> 00:07:08,200 Bestela, bihurketa arrakastatsua kopurua itzultzen du, 114 00:07:08,200 --> 00:07:14,380 0, 1 edo 2 izan daiteke, bi bihurketa dugu eskatu geroztik. 115 00:07:14,380 --> 00:07:19,000 Gure kasuan, ziurtatu erabiltzaileak int eta int bat bakarrik idatzi egin nahi dugu. 116 00:07:19,000 --> 00:07:23,370 >> Beraz, sscanf 1 itzuli nahi dugu. Ikusi zergatik? 117 00:07:23,370 --> 00:07:26,850 Sscanf itzuli 0 bada, orduan bihurketa ez egin ziren, 118 00:07:26,850 --> 00:07:31,690 horrela, erabiltzaileak idatzitako sarrera hasieran int bat baino zerbait beste. 119 00:07:31,690 --> 00:07:37,100 Sscanf itzultzen 2 bada, orduan erabiltzaileak ez du behar bezala idatzi sarrera hasieran, 120 00:07:37,100 --> 00:07:41,390 baina gero, ez-zuriuneak karaktere batzuk idatzi gero 121 00:07:41,390 --> 00:07:44,940 c conversion% geroztik egin da. 122 00:07:44,940 --> 00:07:49,570 Wow, nahiko funtzio deia azalpen luze bat. 123 00:07:49,570 --> 00:07:53,460 Dena den, nahi duzun sscanf eta bere anai-arrebak buruzko informazio gehiago izanez gero, 124 00:07:53,460 --> 00:07:57,130 check out man orriak, Google, edo biak. 125 00:07:57,130 --> 00:07:58,780 Formatu katea aukera asko daude, 126 00:07:58,780 --> 00:08:03,830 eta horiek gorde ahal eskuzko lan asko kateak analizatu C. nahian 127 00:08:03,830 --> 00:08:07,180 >> Azken liburutegian funtzioa begiratzen GetString. 128 00:08:07,180 --> 00:08:10,310 Bihurtzen da GetString delikatua funtzioa behar bezala idatzi da, 129 00:08:10,310 --> 00:08:14,290 arren, badirudi, simple, besteak beste, zeregin komun bezala. 130 00:08:14,290 --> 00:08:16,170 Zergatik da kasu honetan? 131 00:08:16,170 --> 00:08:21,380 Beno, dezagun nola line gordetzeko dugu pentsatu erabiltzaileari mota sartu 132 00:08:21,380 --> 00:08:23,880 Kate bat karakteretan sekuentzia bat denez, 133 00:08:23,880 --> 00:08:26,430 array batean gorde pilaketan nahi dugu agian, 134 00:08:26,430 --> 00:08:31,250 baina zenbat denboraz array izango denean aldarrikatzen dugu jakin beharko genuke. 135 00:08:31,250 --> 00:08:34,030 Era berean, zeure gainean jarri nahi dugu, 136 00:08:34,030 --> 00:08:38,090 malloc gainditu nahi erreserba dugu byte kopurua behar dugu, 137 00:08:38,090 --> 00:08:39,730 baina hori ezinezkoa da. 138 00:08:39,730 --> 00:08:42,760 Ez daki zenbat karakteretan erabiltzaileak idazten ditugu 139 00:08:42,760 --> 00:08:46,590 Erabiltzaileak benetan aurretik idatzi du. 140 00:08:46,590 --> 00:08:50,720 >> Arazo honen konponbidea inozoa da soilik erreserbatu espazioaren zati handi bat, adibidez, 141 00:08:50,720 --> 00:08:54,540 1000 erabiltzailearen sarrera karaktere bloke bat, 142 00:08:54,540 --> 00:08:57,980 Erabiltzaileak ez litzateke inoiz kate bat idatzi luze suposatuz. 143 00:08:57,980 --> 00:09:00,810 Bi arrazoigatik ideia txarra da. 144 00:09:00,810 --> 00:09:05,280 Lehenik eta behin, erabiltzaile normalean ez kate batean idatzi luze suposatuz, 145 00:09:05,280 --> 00:09:07,610 memoria asko alferrik izan duzu. 146 00:09:07,610 --> 00:09:10,530 Makina moderno On, hori ez da arazo bat izan badituzu 147 00:09:10,530 --> 00:09:13,890 instantzia isolatu bat edo bi, 148 00:09:13,890 --> 00:09:17,630 baina ari zaren erabiltzailearen sarrera badu, begizta batean eta geroago erabiltzeko gordetzeko, 149 00:09:17,630 --> 00:09:20,870 azkar dezakezu zurrupatu memoria tona bat. 150 00:09:20,870 --> 00:09:24,450 Horrez gain, idazten ari zaren programa izanez gero, ordenagailu bat txikiagoa da 151 00:09:24,450 --> 00:09:28,100 smartphone bat edo beste zerbait memoria mugatua duten bezala gailu bat - 152 00:09:28,100 --> 00:09:32,060 irtenbide hau, arazoak sor ditzakete asko azkarrago. 153 00:09:32,060 --> 00:09:36,450 Bigarren, arrazoi larriak ez uzten zure programa zaurgarria 154 00:09:36,450 --> 00:09:39,710 zer izeneko bat buffer-gainezkatzea erasoa. 155 00:09:39,710 --> 00:09:45,840 Programazioa, buffer bat sarrera edo irteerako datuak aldi baterako gordetzeko memoria erabiltzen da, 156 00:09:45,840 --> 00:09:48,980 kasu honetan, gure 1000-char blokea da. 157 00:09:48,980 --> 00:09:53,370 Buffer gainezkatzea A gertatzen da datuak blokearen amaiera iraganeko idatzi. 158 00:09:53,370 --> 00:09:57,790 >> Adibidez, erabiltzaile batek benetan ez badu mota baino gehiago 1000 karakteretan. 159 00:09:57,790 --> 00:10:01,570 Bizi izan dezakezu hau ustekabean denean array programazioa. 160 00:10:01,570 --> 00:10:05,620 10 ints array bat izanez gero, ez da ezer gelditzen da, irakurri edo idazten saiatu 161 00:10:05,620 --> 00:10:07,810 15ean int. 162 00:10:07,810 --> 00:10:10,000 Konpilatzailea abisu edo akatsak ez daude. 163 00:10:10,000 --> 00:10:13,250 Programa hanka sartzeak Zuzen eta memoria sartzen 164 00:10:13,250 --> 00:10:18,150 non pentsatzen int 15ean izango da, eta hau da zure beste aldagai ordezka ditzakete. 165 00:10:18,150 --> 00:10:22,040 Kasurik okerrenean, zure programaren barne batzuk gainidatzi dezakezu 166 00:10:22,040 --> 00:10:26,820 kontrol-mekanismoak, zure programa eragin desberdinak benetan exekutatu jarraibideak 167 00:10:26,820 --> 00:10:28,340 asmoa baino. 168 00:10:28,340 --> 00:10:31,360 >> Orain, berriz, ez da ohikoa hori egin nahi gabe, 169 00:10:31,360 --> 00:10:35,150 baina hau nahiko ohikoa teknika txarra guys erabiltzen duten programak apurtu da 170 00:10:35,150 --> 00:10:39,080 eta kode maltzurren jarri besteen ordenagailuetan. 171 00:10:39,080 --> 00:10:42,910 Hori dela eta, ezin dugu erabili gure inozoa konponbidea. 172 00:10:42,910 --> 00:10:45,590 Zaurgarria izatea gure programak saihesteko modu bat behar dugu 173 00:10:45,590 --> 00:10:47,880 to bat buffer gainezkatzea erasoa. 174 00:10:47,880 --> 00:10:51,430 Horretarako, ziurtatu gure buffer irakurri dugun bezala hazten egin behar dugu 175 00:10:51,430 --> 00:10:53,850 Erabiltzaileak sarrera gehiago. 176 00:10:53,850 --> 00:10:57,440 Irtenbidea? Zeure esleituriko buffer erabiltzen dugu. 177 00:10:57,440 --> 00:10:59,950 Tamainaz aldatu ahal izango dugu geroztik erabiliz resize idazketa funtzioa, 178 00:10:59,950 --> 00:11:04,580 eta segimendua egiteko bi zenbakien hutsaren hurrengo slot indizea bufferraren 179 00:11:04,580 --> 00:11:08,390 eta luzera edo bufferraren gaitasuna. 180 00:11:08,390 --> 00:11:13,210 Erabiltzaile bat karakteretan irakurri dugu denbora bat fgetc funtzioa erabiliz. 181 00:11:13,210 --> 00:11:19,360 Argumentua fgetc funtzioa hartzen - stdin - erreferentzia bat da, sarrera estandarra katea, 182 00:11:19,360 --> 00:11:23,810 sarrera kanal preconnected hori erabiltzailearen sarrera transferitzeko erabiltzen da 183 00:11:23,810 --> 00:11:26,270 terminalean programa. 184 00:11:26,270 --> 00:11:29,890 >> Bakoitzean pertsonaia berri bat erabiltzaileak motak, ikus egiaztatu indizearen 185 00:11:29,890 --> 00:11:35,810 free slot hurrengo plus 1 bufferraren gaitasuna baino handiagoa da. 186 00:11:35,810 --> 00:11:39,690 +1 Hurrengo free indizea delako 5 dator, 187 00:11:39,690 --> 00:11:44,150 ondoren, gure buffer luzera 6 esker 0 indexatzeko izan behar du. 188 00:11:44,150 --> 00:11:48,350 Exekutatzen dugu bada espazio bufferraren, gero tamaina aldatu saiatuko gara, 189 00:11:48,350 --> 00:11:51,690 bikoiztu egin da, beraz, behera moztu dugu zenbat aldiz tamaina aldatzeko dugun 190 00:11:51,690 --> 00:11:54,760 Erabiltzaileak bada benetan kate luzea idazten. 191 00:11:54,760 --> 00:11:57,950 Katea luzeegia badu ahaztuak edo exekutatu dugu zeure memoria, 192 00:11:57,950 --> 00:12:01,350 bufferrean eta bueltan null askatzea dugu. 193 00:12:01,350 --> 00:12:04,170 >> Azkenik, karakterra bufferraren erantsi dugu. 194 00:12:04,170 --> 00:12:08,200 Erabiltzaile hits sartu edo ondoren itzultzeko, linea berri bat seinaleztapen, 195 00:12:08,200 --> 00:12:12,050 edo berezia char control d sarrera amaiera seinaleak, 196 00:12:12,050 --> 00:12:16,240 Erabiltzaileak benetan ezer idatzi guztiak ikusteko txeke bat egiten dugu. 197 00:12:16,240 --> 00:12:18,820 Hala ez bada, null itzuliko gara. 198 00:12:18,820 --> 00:12:22,280 Bestela, gure buffer da seguruenik behar baino handiagoa dugu delako, 199 00:12:22,280 --> 00:12:24,830 txarrena kasuan, ia bi aldiz handiak behar dugu 200 00:12:24,830 --> 00:12:27,830 tamainaz aldatu dugu denbora behin bikoiztu egin dugu aurrera, 201 00:12:27,830 --> 00:12:31,840 espazioaren zenbatekoa behar ditugu erabiliz katea kopia berri bat egiten dugu. 202 00:12:31,840 --> 00:12:34,220 Extra 1 malloc dei bat gehitu dugu, 203 00:12:34,220 --> 00:12:37,810 \ 0 -, beraz, null berezia amaierako karakterea espazio 204 00:12:37,810 --> 00:12:41,990 erantsi dugu pertsonaien gainerako katea kopiatzen dugu behin, 205 00:12:41,990 --> 00:12:45,060 strncpy ordez strcpy 206 00:12:45,060 --> 00:12:48,830 beraz, zehatz-mehatz zenbat karakteretan kopiatu nahi dugun zehaztu ahal izango dugu. 207 00:12:48,830 --> 00:12:51,690 Strcpy kopiatzen hits a \ 0 arte. 208 00:12:51,690 --> 00:12:55,740 Ondoren, gure buffer libre dugu eta kopia deitzaileari itzultzeko. 209 00:12:55,740 --> 00:12:59,840 >> Nor bazekien simple-seeming funtzio bat, hala nola, beraz, zaila izan behar da? 210 00:12:59,840 --> 00:13:02,820 Orain badakizu zer CS50 liburutegia doa. 211 00:13:02,820 --> 00:13:06,470 >> Nire izena Nate Hardison da, eta hau da CS50. 212 00:13:06,470 --> 00:13:08,350 [CS50.TV]