1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Írjunk egy programot, amely megkérdezi a felhasználót a két szöveget és 3 00:00:03,530 --> 00:00:07,170 majd közli, hogy azok a húrok jelentése azonos vagy nem azonos. 4 00:00:07,170 --> 00:00:10,290 Már kezdtem minket itt hívás printf kétszer hívás 5 00:00:10,290 --> 00:00:14,520 GetString kétszer, tárolása a visszatérés értékeket s és t, ill. 6 00:00:14,520 --> 00:00:17,960 >> Nos, az én ösztönök összehasonlítani a két húrok lenne, hogy használja az ismerős 7 00:00:17,960 --> 00:00:19,160 egyenlőség operátor - 8 00:00:19,160 --> 00:00:22,070 ha s értéke egyenlő t. 9 00:00:22,070 --> 00:00:28,120 Aztán megyek előre, és a nyomtatási out "Te gépelt ugyanaz! 10 00:00:28,120 --> 00:00:35,190 Különben, ha ez nem igaz, én csak majd írja printf ("Te gépelt 11 00:00:35,190 --> 00:00:37,880 különböző dolog! 12 00:00:37,880 --> 00:00:38,850 >> Meglehetősen egyszerű - 13 00:00:38,850 --> 00:00:41,820 Én egyszerűen csak összehasonlításával s ellen t, és ha ők egyenlő, 14 00:00:41,820 --> 00:00:43,250 nyomtat ki, mint sok. 15 00:00:43,250 --> 00:00:45,450 Nézzük lefordítani és futtatni ezt a programot. 16 00:00:45,450 --> 00:00:51,950 Legyen összehasonlításba 0. / Összehasonlítása 0, mond valamit, hello, 17 00:00:51,950 --> 00:00:54,200 mondani valamit, helló. 18 00:00:54,200 --> 00:00:56,870 >> Sajnos, a program azt hiszi, gépelt különböző dolog, bár én 19 00:00:56,870 --> 00:00:59,530 egyértelműen gépelt "hello" a Ugyanígy mindkét alkalommal. 20 00:00:59,530 --> 00:01:00,850 Nos, miért lenne az? 21 00:01:00,850 --> 00:01:03,750 >> Nos, kiderült, hogy ez az egész idő, vonósok volna egy kicsit 22 00:01:03,750 --> 00:01:06,780 összetettebb, mint egy karaktersor a motorháztető alatt. 23 00:01:06,780 --> 00:01:11,450 A valóságban, egy sor egy mutató, vagy cím, konkrétan a cím 24 00:01:11,450 --> 00:01:14,640 Az első karakter az adott karaktersor. 25 00:01:14,640 --> 00:01:18,640 >> És ha összehasonlítjuk s ellen t az azonos egyenlőségjel vagyunk 26 00:01:18,640 --> 00:01:23,200 valójában azt kérdezi, ez a cím azonos azonos erre a címre? 27 00:01:23,200 --> 00:01:26,850 És ez nem lesz a helyzet, ha a felhasználó által beírt két különböző 28 00:01:26,850 --> 00:01:30,370 vonósok és mi már az úgynevezett getString kétszer kell kérni őket, mert a memória 29 00:01:30,370 --> 00:01:34,480 hogy getString használ tárolja az első karakterlánc lehet itt a RAM-ban, de a 30 00:01:34,480 --> 00:01:37,120 memória getString tárolására használt A második szöveg megy 31 00:01:37,120 --> 00:01:38,760 hogy itt a RAM-ban. 32 00:01:38,760 --> 00:01:42,380 És persze, akkor, a két darabokat memória különböző címek 33 00:01:42,380 --> 00:01:44,220 az első karakter. 34 00:01:44,220 --> 00:01:46,120 >> Tehát s egyenlő egyenlő t? 35 00:01:46,120 --> 00:01:46,885 Nos, nem. 36 00:01:46,885 --> 00:01:50,510 Ha az s és t mutat a különböző darabokat a memória, mivel ezek lennének által 37 00:01:50,510 --> 00:01:54,140 hívás getString kétszer, ők nem, sőt, lesz ugyanaz. 38 00:01:54,140 --> 00:01:57,700 Tehát úgy tűnik, hogy a helyzet, hogy a összehasonlítani két karakterlánc az intuitív 39 00:01:57,700 --> 00:02:01,050 módon, hogy azt várjuk, karakter karakter, szükségünk van egy másik technika 40 00:02:01,050 --> 00:02:02,300 összesen. 41 00:02:02,300 --> 00:02:03,902