1 00:00:00,000 --> 00:00:03,250 >> LUIDSPREKER 1: Laten we nu een programma schrijven ze echt vergelijkt twee strings 2 00:00:03,250 --> 00:00:04,245 karakter voor karakter. 3 00:00:04,245 --> 00:00:06,830 Laten we vergelijken 0 als ons uitgangspunt. 4 00:00:06,830 --> 00:00:11,550 Maar laten we eerst schil terug de laag die is het type string en herschrijven 5 00:00:11,550 --> 00:00:14,120 voor wat het werkelijk is, wat is een char ster. 6 00:00:14,120 --> 00:00:17,740 Dit is het adres van een karakter, specifiek het eerste teken in een 7 00:00:17,740 --> 00:00:21,010 reeks tekens die we zouden meer algemeen bekend als een string. 8 00:00:21,010 --> 00:00:21,880 >> Zelfde voor t. 9 00:00:21,880 --> 00:00:25,660 Laten we herschrijven die string verklaring als char ster. 10 00:00:25,660 --> 00:00:28,690 En nu moeten we niet meer vergelijk s tegen t, opdat 11 00:00:28,690 --> 00:00:30,150 We vergelijken twee adressen. 12 00:00:30,150 --> 00:00:33,180 We willen echt vergelijken de twee snaren zelf. 13 00:00:33,180 --> 00:00:37,520 Om dit te doen, kunnen we een functie gebruiken verklaarde in string.h. 14 00:00:37,520 --> 00:00:40,920 Dus ik zal toevoegen dat onder op de top van mijn dossier. 15 00:00:40,920 --> 00:00:43,130 >> En dan ga ik naar verandering deze lijn hier. 16 00:00:43,130 --> 00:00:47,920 In plaats van te vergelijken s tegen t, ik ben gaat om een ​​functie roer comp noemen, 17 00:00:47,920 --> 00:00:52,290 voor strijkorkest vergelijken, en passeren in als argumenten s en t. 18 00:00:52,290 --> 00:00:56,480 We zullen dan uit te stellen naar een string te vergelijken met erachter te komen of s en t zijn inderdaad gelijk 19 00:00:56,480 --> 00:00:59,870 en laat het uitzoeken hoe om te vergelijken ze karakter voor karakter. 20 00:00:59,870 --> 00:01:02,410 >> Nu, volgens de documentatie voor strijkkwartet vergelijken, het is eigenlijk 21 00:01:02,410 --> 00:01:06,920 gaat terug 0 als de twee snaren gewezen door s en t dezelfde zijn. 22 00:01:06,920 --> 00:01:09,490 Het gaat om een ​​negatief getal terug als s vóór t moet komen 23 00:01:09,490 --> 00:01:13,740 alfabetisch of een positief getal als s moeten alfabetisch na t komen. 24 00:01:13,740 --> 00:01:16,090 >> Maar voor nu, we alleen de zorg over gelijkheid. 25 00:01:16,090 --> 00:01:19,270 Dus ik ga gewoon testen of de return waarde van de string te vergelijken, 26 00:01:19,270 --> 00:01:21,450 passeren s en t, gelijk aan 0. 27 00:01:21,450 --> 00:01:24,940 En zo ja, ga ik om te beweren dat de twee snaren zijn hetzelfde. 28 00:01:24,940 --> 00:01:26,820 >> Maar ik ga er een te maken andere wijziging ook. 29 00:01:26,820 --> 00:01:30,410 Het blijkt dat get snaar, per haar documentatie, kan soms terugkeren 30 00:01:30,410 --> 00:01:34,320 null, een sentinel waarde die volgens strings documentatie, middelen krijgen 31 00:01:34,320 --> 00:01:35,450 iets ergs gebeurd. 32 00:01:35,450 --> 00:01:38,830 Bijvoorbeeld, we hadden geen geheugen of de gebruiker een of andere manier werkte niet mee. 33 00:01:38,830 --> 00:01:41,080 >> String vergelijken, ondertussen, is een beetje broos. 34 00:01:41,080 --> 00:01:44,730 Als u doorgeven null voor zowel haar eerste of het tweede argument, slecht 35 00:01:44,730 --> 00:01:45,650 dingen kunnen gebeuren. 36 00:01:45,650 --> 00:01:47,970 Slechte dingen waarbij meestal segmentatie fouten. 37 00:01:47,970 --> 00:01:52,210 Dus om dat potentiële helemaal te vermijden, Ik ga eerst naar dit gebruik van wikkel 38 00:01:52,210 --> 00:01:56,350 snaar vergelijken door inspringen deze hele blok van de code en de eerste alleen doen 39 00:01:56,350 --> 00:02:03,140 dat als s is gelijk aan nul en t is niet gelijk aan nul. 40 00:02:03,140 --> 00:02:08,280 >> Wikkelen dat als anders te construeren dat ik eerder getypt met accolades als 41 00:02:08,280 --> 00:02:12,270 goed, zodat ik deze keer alleen aanraken s en t als ik ben er zeker van dat 42 00:02:12,270 --> 00:02:13,450 ze zijn niet nul. 43 00:02:13,450 --> 00:02:17,220 Laten we nu nog redden, compileren, en re-run dit programma. 44 00:02:17,220 --> 00:02:22,240 >> Maak vergelijk 1 dot slash vergelijken 1. 45 00:02:22,240 --> 00:02:23,950 Ik zal hallo weer zeggen. 46 00:02:23,950 --> 00:02:25,890 Gevolgd door hello nog maar eens. 47 00:02:25,890 --> 00:02:28,110 En deze keer, ik inderdaad Typ hetzelfde. 48 00:02:28,110 --> 00:02:30,255