1 00:00:00,000 --> 00:00:03,250 >> HÖGTALARE 1: Låt oss nu skriva ett program de verkligen jämför två strängar 2 00:00:03,250 --> 00:00:04,245 tecken för tecken. 3 00:00:04,245 --> 00:00:06,830 Låt oss använda jämföra 0 som vår utgångspunkt. 4 00:00:06,830 --> 00:00:11,550 Men låt oss först skal tillbaka det lager som är den typen sträng och skriva om det 5 00:00:11,550 --> 00:00:14,120 för vad det verkligen är, vilket är en röding stjärna. 6 00:00:14,120 --> 00:00:17,740 Det är adressen till ett tecken, speciellt det första tecknet i en 7 00:00:17,740 --> 00:00:21,010 sekvens av tecken som vi hade mer allmänt känd som en sträng. 8 00:00:21,010 --> 00:00:21,880 >> Samma för t. 9 00:00:21,880 --> 00:00:25,660 Låt oss skriva om den strängen deklaration som röding stjärna. 10 00:00:25,660 --> 00:00:28,690 Och nu behöver vi inte längre Jämför s mot t, lest 11 00:00:28,690 --> 00:00:30,150 vi jämför två adresser. 12 00:00:30,150 --> 00:00:33,180 Vi vill verkligen jämföra två strängar själva. 13 00:00:33,180 --> 00:00:37,520 För att göra detta, kan vi använda en funktion deklarerats i string.h. 14 00:00:37,520 --> 00:00:40,920 Så jag ska lägga till att omfatta på toppen av min fil. 15 00:00:40,920 --> 00:00:43,130 >> Och då kommer jag att förändring denna linje här. 16 00:00:43,130 --> 00:00:47,920 I stället för att jämföra s mot t, jag är kommer att kalla en funktion uppståndelse komp, 17 00:00:47,920 --> 00:00:52,290 för stråk jämföra, och passera i som argument s och t. 18 00:00:52,290 --> 00:00:56,480 Vi kommer att skjuta upp sedan till sträng jämföra med räkna ut om s och t är verkligen lika 19 00:00:56,480 --> 00:00:59,870 och låt den räkna ut hur man kan jämföra dem tecken för tecken. 20 00:00:59,870 --> 00:01:02,410 >> Nu, enligt dokumentationen för sträng jämföra, det är faktiskt 21 00:01:02,410 --> 00:01:06,920 kommer att returnera 0 om de två strängarna som pekas på av s och t är samma. 22 00:01:06,920 --> 00:01:09,490 Det kommer att returnera ett negativt tal om s skulle komma före t 23 00:01:09,490 --> 00:01:13,740 alfabetiskt eller ett positivt tal om s ska komma efter t bokstavsordning. 24 00:01:13,740 --> 00:01:16,090 >> Men för nu, bara vi bryr om jämställdhet. 25 00:01:16,090 --> 00:01:19,270 Så jag ska helt enkelt testa om returvärde sträng jämföra, 26 00:01:19,270 --> 00:01:21,450 passerar s och t, ​​lika med 0. 27 00:01:21,450 --> 00:01:24,940 Och i så fall kommer jag att hävda att de två strängarna är lika. 28 00:01:24,940 --> 00:01:26,820 >> Men jag kommer att göra en annan förändring också. 29 00:01:26,820 --> 00:01:30,410 Det visar sig att få sträng, per den dokumentation, kan ibland gå tillbaka 30 00:01:30,410 --> 00:01:34,320 null, en vakt värde som, enligt att få strängar dokumentation, hjälpmedel 31 00:01:34,320 --> 00:01:35,450 hände något dåligt. 32 00:01:35,450 --> 00:01:38,830 Till exempel, vi har slut på minne eller användaren på något sätt inte samarbetade. 33 00:01:38,830 --> 00:01:41,080 >> String jämföra, under tiden, är lite bräcklig. 34 00:01:41,080 --> 00:01:44,730 Om du klarar det null för antingen dess första eller sitt andra argument, dålig 35 00:01:44,730 --> 00:01:45,650 saker kan hända. 36 00:01:45,650 --> 00:01:47,970 Dåliga saker vanligtvis omfattar segmentering fel. 37 00:01:47,970 --> 00:01:52,210 Så för att undvika att den potentiella helt och hållet, Jag först ska linda denna användning av 38 00:01:52,210 --> 00:01:56,350 sträng jämföra genom att dra in hela denna kodblock och först bara göra 39 00:01:56,350 --> 00:02:03,140 att om n inte är lika med noll och t inte är lika med noll. 40 00:02:03,140 --> 00:02:08,280 >> Inslag att om annat konstruerar jag skrev tidigare med klammerparenteser som 41 00:02:08,280 --> 00:02:12,270 väl, så att denna gång jag rör bara s och t om jag är säker på att 42 00:02:12,270 --> 00:02:13,450 de inte är null. 43 00:02:13,450 --> 00:02:17,220 Låt oss nu spara, kompilera, och åter köra programmet. 44 00:02:17,220 --> 00:02:22,240 >> Gör jämför 1 dot snedstreck jämför 1. 45 00:02:22,240 --> 00:02:23,950 Jag ska säga hej igen. 46 00:02:23,950 --> 00:02:25,890 Följt av hello ännu en gång. 47 00:02:25,890 --> 00:02:28,110 Och den här gången, jag verkligen skriver samma sak. 48 00:02:28,110 --> 00:02:30,255