1 00:00:00,000 --> 00:00:03,250 >> SPEAKER 1: Pojďme teď napsat program, oni skutečně porovnává dva řetězce 2 00:00:03,250 --> 00:00:04,245 znak pro znak. 3 00:00:04,245 --> 00:00:06,830 Využijme porovnat 0 jako náš výchozí bod. 4 00:00:06,830 --> 00:00:11,550 Ale pojďme nejprve slupkou zpět vrstva, která je typu string a přepsat ho 5 00:00:11,550 --> 00:00:14,120 na to, co skutečně je, což je char hvězda. 6 00:00:14,120 --> 00:00:17,740 To je adresa charakteru, konkrétně první znak v 7 00:00:17,740 --> 00:00:21,010 posloupnost znaků, které bychom více obecně známý jako řetězec. 8 00:00:21,010 --> 00:00:21,880 >> Stejné pro t. 9 00:00:21,880 --> 00:00:25,660 Pojďme přepsat ten řetězec prohlášení jako char hvězdy. 10 00:00:25,660 --> 00:00:28,690 A teď musíme již porovnat s proti t, jinak 11 00:00:28,690 --> 00:00:30,150 porovnáme dvě adresy. 12 00:00:30,150 --> 00:00:33,180 Chceme opravdu srovnávat dvě samotné řetězce. 13 00:00:33,180 --> 00:00:37,520 Chcete-li to provést, můžeme použít funkci prohlásil v string.h. 14 00:00:37,520 --> 00:00:40,920 Tak jsem si dodat, že patří na vrcholu svého souboru. 15 00:00:40,920 --> 00:00:43,130 >> A pak jdu na změnu tento řádek zde. 16 00:00:43,130 --> 00:00:47,920 Spíše než porovnat s proti t, jsem bude volat funkce míchací comp, 17 00:00:47,920 --> 00:00:52,290 pro řetězec porovnat, a předat se jako argumenty S a T. 18 00:00:52,290 --> 00:00:56,480 Budeme odložit pak řetězec porovnat zjistit, jestli s a t jsou opravdu rovné 19 00:00:56,480 --> 00:00:59,870 a nechat to zjistit, jak porovnat je znak pro znak. 20 00:00:59,870 --> 00:01:02,410 >> Nyní, podle dokumentace pro řetězec porovnat, je to ve skutečnosti 21 00:01:02,410 --> 00:01:06,920 chystá vrátit hodnotu 0, pokud dva řetězce ukázal na o s a t jsou stejné. 22 00:01:06,920 --> 00:01:09,490 Bude to vrátí záporné číslo pokud by se měla přijít před t 23 00:01:09,490 --> 00:01:13,740 podle abecedy nebo kladné číslo, pokud s by měla přijít po t abecedně. 24 00:01:13,740 --> 00:01:16,090 >> Ale teď, jen my se staráme o rovnosti. 25 00:01:16,090 --> 00:01:19,270 Takže budu prostě otestovat, zda Návratová hodnota řetězce porovnávat, 26 00:01:19,270 --> 00:01:21,450 procházející v S a T, se rovná 0. 27 00:01:21,450 --> 00:01:24,940 A pokud ano, budu tvrdit, že dva řetězce jsou stejné. 28 00:01:24,940 --> 00:01:26,820 >> Ale já jdu udělat jednu jiné změny stejně. 29 00:01:26,820 --> 00:01:30,410 Ukazuje se, že get řetězec, na ITS dokumentaci, může někdy vrátit 30 00:01:30,410 --> 00:01:34,320 null, hodnota Sentinel, že v souladu dostat řetězců dokumentaci znamená, 31 00:01:34,320 --> 00:01:35,450 něco špatného stalo. 32 00:01:35,450 --> 00:01:38,830 Například, máme nedostatek paměti nebo uživatel nějak nespolupracoval. 33 00:01:38,830 --> 00:01:41,080 >> String porovnat, mezitím, je poněkud křehký. 34 00:01:41,080 --> 00:01:44,730 Pokud předáte je null buď jeho První nebo druhý argument, špatný 35 00:01:44,730 --> 00:01:45,650 co se může stát. 36 00:01:45,650 --> 00:01:47,970 Špatné věci se obvykle zahrnující segmentace chyby. 37 00:01:47,970 --> 00:01:52,210 Tak, aby se předešlo tomu, že potenciál úplně, Já jsem první bude zabalit toto použití 38 00:01:52,210 --> 00:01:56,350 string porovnat odsazením tento celek blok kódu a první jen to, 39 00:01:56,350 --> 00:02:03,140 , že v případě, s není rovno null a t není rovno null. 40 00:02:03,140 --> 00:02:08,280 >> Balící, že pokud jiný konstrukt, který já napsal dříve se složených závorek jako 41 00:02:08,280 --> 00:02:12,270 dobře, takže tentokrát jsem jen dotknout s a t, jestli jsem si jist, že 42 00:02:12,270 --> 00:02:13,450 nejsou null. 43 00:02:13,450 --> 00:02:17,220 Pojďme nyní uložit, zkompilovat, a znovu spustit tento program. 44 00:02:17,220 --> 00:02:22,240 >> Udělat porovnej 1 tečka lomítko Porovnat 1. 45 00:02:22,240 --> 00:02:23,950 Budu pozdravit znovu. 46 00:02:23,950 --> 00:02:25,890 Následoval opět ahoj. 47 00:02:25,890 --> 00:02:28,110 A tentokrát jsem opravdu zadejte totéž. 48 00:02:28,110 --> 00:02:30,255