1 00:00:00,000 --> 00:00:00,366 2 00:00:00,366 --> 00:00:01,830 >> Głośnik: Nazwijmy to ciąg. 3 00:00:01,830 --> 00:00:03,510 To jest po prostu ciąg znaków. 4 00:00:03,510 --> 00:00:05,790 Rzeczywiście, jest to po prostu Tablica znaków. 5 00:00:05,790 --> 00:00:09,730 A więc nawet jeśli mamy ciąg od Użytkownik w zwykły sposób z CS50 jest 6 00:00:09,730 --> 00:00:13,550 GetString, możemy przystąpić do iteracyjne nad ciąg znaków, w tym 7 00:00:13,550 --> 00:00:17,110 pojedynczo jakby to ciąg jest rzeczywiście tablicą. 8 00:00:17,110 --> 00:00:18,660 Spróbujmy tego w kodzie. 9 00:00:18,660 --> 00:00:21,470 >> M.in. cs50.h. 10 00:00:21,470 --> 00:00:24,440 M.in. stdio.h. 11 00:00:24,440 --> 00:00:27,960 I niech to także m.in. tak, że mamy dostęp 12 00:00:27,960 --> 00:00:29,500 do funkcji StringLen. 13 00:00:29,500 --> 00:00:33,220 Załóżmy teraz zadeklarować główną jako int main nieważne. 14 00:00:33,220 --> 00:00:36,740 I niech teraz postępować, aby uzyskać ciąg od użytkownika. 15 00:00:36,740 --> 00:00:39,480 Printf wejście. 16 00:00:39,480 --> 00:00:45,180 Załóżmy teraz zadeklarować ciąg wzywając go y, i zadzwonić do naszego przyjaciela GetString. 17 00:00:45,180 --> 00:00:49,570 >> Niech teraz postępować, aby sprawdzić, czy użytkownikowi rzeczywiście mi łańcuch, ponieważ 18 00:00:49,570 --> 00:00:53,370 Okazuje się na własne GetString dokumentacja, GetString może na 19 00:00:53,370 --> 00:00:56,830 okazja powrotu NULL, specjalny sentinel Wartość, która zasadniczo 20 00:00:56,830 --> 00:00:59,630 oznacza, że ​​użytkownik nie współpracować i jakoś tak 21 00:00:59,630 --> 00:01:01,150 nie zapewniają ciąg. 22 00:01:01,150 --> 00:01:03,190 Warto więc sprawdzić, że warunku. 23 00:01:03,190 --> 00:01:09,300 >> JEŚLI s nie równe NULL, to możemy Zakładam, że s jest rzeczywiście ciąg, 24 00:01:09,300 --> 00:01:14,580 Tablica znaków, a następnie przejdź do iteracyjne nad tymi znakami. 25 00:01:14,580 --> 00:01:22,240 DLA int i dostaje 0, niech również oświadczyć n jako równa długości łańcucha w taki s 26 00:01:22,240 --> 00:01:27,900 długo, jak jest mniej niż n, a na każdym iteracji, niech przyrost i.. 27 00:01:27,900 --> 00:01:35,200 W obrębie tej pętli WTEDY, nazwijmy printf z% c backslash n, a następnie podłącz 28 00:01:35,200 --> 00:01:41,140 do wspornika tej wartości s i tym samym wydrukować jeden znak na raz każdego 29 00:01:41,140 --> 00:01:42,420 samochodów, w s.. 30 00:01:42,420 --> 00:01:45,210 >> Załóżmy teraz skompilować i uruchomić ten program. 31 00:01:45,210 --> 00:01:47,140 Dodać ciąg. 32 00:01:47,140 --> 00:01:52,500 . / String Mój wkład będzie "cześć". I nie mamy go. 33 00:01:52,500 --> 00:01:55,410 H-E-L-L-O, każdy char oddzielnym wierszu. 34 00:01:55,410 --> 00:01:56,727