1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> David J. MALAN: Chcę napisać program który pyta użytkownika ciąg znaków i 3 00:00:03,140 --> 00:00:07,210 następnie przystąpić do drukowania tego ciągu znaków dla jednej postaci jednej linii. 4 00:00:07,210 --> 00:00:10,570 Teraz w przeszłości, tak by zrobił zapewne z kwadratową notacji uchwytem, 5 00:00:10,570 --> 00:00:13,680 skutecznego leczenia ciąg jest tablicą znaków. 6 00:00:13,680 --> 00:00:17,200 >> Ale tym razem, niech zamiast leczyć ciąg tego, co tak naprawdę jest, 7 00:00:17,200 --> 00:00:18,770 wskaźnik lub adres. 8 00:00:18,770 --> 00:00:22,420 W szczególności, adres charakter, naprawdę adres 9 00:00:22,420 --> 00:00:25,740 Pierwszy znak w sekwencji znaków, które wspólnie wiedzą 10 00:00:25,740 --> 00:00:26,860 jako ciąg. 11 00:00:26,860 --> 00:00:30,740 >> Niech najpierw zadeklarować ciąg dla co to naprawdę jest, char *. 12 00:00:30,740 --> 00:00:31,770 I nazwijmy go s. 13 00:00:31,770 --> 00:00:34,670 A następnie przypisać mu powrót wartość pobiera ciąg znaków. 14 00:00:34,670 --> 00:00:36,380 >> Niech następny zrobić sprawdzanie błędów. 15 00:00:36,380 --> 00:00:42,920 Jeśli s jest null, niech natychmiast wrócić tak, że nie przypadkowo 16 00:00:42,920 --> 00:00:45,630 nieprawidłowego tym wskaźnikiem NULL. 17 00:00:45,630 --> 00:00:49,750 >> Następnie niech iteracyjnego znaków w S w następujący sposób. 18 00:00:49,750 --> 00:00:52,390 Do int, i dostaje 0. 19 00:00:52,390 --> 00:00:55,890 n to długość ciągu znaków s. 20 00:00:55,890 --> 00:00:58,050 Czy to tak długo, jak jest mniej niż n. 21 00:00:58,050 --> 00:01:00,690 I na każdej iteracji, przyrost i. 22 00:01:00,690 --> 00:01:02,710 >> I co chcemy zrobić na każdej iteracji? 23 00:01:02,710 --> 00:01:06,180 Załóżmy teraz wydrukować na każdej iteracji pojedynczy znak 24 00:01:06,180 --> 00:01:07,910 następnie nową linią. 25 00:01:07,910 --> 00:01:10,010 A co zrobić, charakter chcemy wydrukować? 26 00:01:10,010 --> 00:01:16,850 Proponuję udać się do adresu która jest równa sumie S Plus ja. 27 00:01:16,850 --> 00:01:18,390 >> Teraz, dlaczego to wyrażenie? 28 00:01:18,390 --> 00:01:22,130 Cóż, pamiętam, że przechowywany jest w s. adres pierwszego znaku 29 00:01:22,130 --> 00:01:23,490 w naszej ciąg, s. 30 00:01:23,490 --> 00:01:27,470 Tymczasem, i jest zwiększany na każdej iteracji, tak że rozpoczyna się w 0 ° C, 31 00:01:27,470 --> 00:01:29,590 Następnie zmienia się na 1, a następnie przechodzi do 2. 32 00:01:29,590 --> 00:01:33,870 >> Więc innymi słowy, S Plus i skutecznie reprezentuje adres 33 00:01:33,870 --> 00:01:35,990 i-ty znak w sek. 34 00:01:35,990 --> 00:01:40,830 Więc jeśli mamy iść na ten adres w drodze operator *, będziemy iść do 35 00:01:40,830 --> 00:01:42,650 i-ty znak w ciągu. 36 00:01:42,650 --> 00:01:45,700 I to jest wartość, która będzie podstawiony dla naszego zastępczego, 37 00:01:45,700 --> 00:01:46,840 procent C. 38 00:01:46,840 --> 00:01:47,840 >> Miejmy potwierdzić tyle. 39 00:01:47,840 --> 00:01:51,720 Ratujmy, kompilacji i uruchomić ten program. 40 00:01:51,720 --> 00:01:55,990 Dodać odnośniki, DOT wskaźniki ukośnymi. 41 00:01:55,990 --> 00:01:58,780 I teraz ja to dać Ciąg jak przywitać. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> I rzeczywiście, widzę H-E-L-L-O, z każdy char w oddzielnym wierszu. 44 00:02:03,770 --> 00:02:05,410