1 00:00:00,000 --> 00:00:00,366 2 00:00:00,366 --> 00:00:01,830 >> SPEAKER: Vom numi un șir. 3 00:00:01,830 --> 00:00:03,510 E doar o secvență de caractere. 4 00:00:03,510 --> 00:00:05,790 Într-adevăr, aceasta este pur și simplu o matrice de caractere. 5 00:00:05,790 --> 00:00:09,730 Și astfel, chiar dacă vom obține un șir de la utilizatorul în mod obișnuit cu a lui CS50 6 00:00:09,730 --> 00:00:13,550 GetString, putem trece apoi la repeta de-a lungul caractere în care string 7 00:00:13,550 --> 00:00:17,110 pe rând ca și cum acea string este într-adevăr un tablou. 8 00:00:17,110 --> 00:00:18,660 Să încercăm în cod. 9 00:00:18,660 --> 00:00:21,470 >> Includeți cs50.h. 10 00:00:21,470 --> 00:00:24,440 Include stdio.h. 11 00:00:24,440 --> 00:00:27,960 Și să includă, de asemenea, string.h astfel încât să avem acces 12 00:00:27,960 --> 00:00:29,500 la funcția de StringLen. 13 00:00:29,500 --> 00:00:33,220 Fie acum a declara principal void main int. 14 00:00:33,220 --> 00:00:36,740 Și să acum continua pentru a obține un șir de la utilizator. 15 00:00:36,740 --> 00:00:39,480 Printf intrare. 16 00:00:39,480 --> 00:00:45,180 Hai acum a declara un sir numindu-l s, și de apel prietenul nostru getString. 17 00:00:45,180 --> 00:00:49,570 >> Să acum proceda pentru a verifica, a făcut utilizatorul într-adevăr, da-mi un șir de caractere, deoarece 18 00:00:49,570 --> 00:00:53,370 se dovedește, pe de getString propriu documentație, getString ar putea pe 19 00:00:53,370 --> 00:00:56,830 prilej de întoarcere NULL, o santinelă special valoare care, în esență, 20 00:00:56,830 --> 00:00:59,630 indică faptul că utilizatorul nu a făcut coopera și într-un fel a făcut 21 00:00:59,630 --> 00:01:01,150 nu oferă un șir. 22 00:01:01,150 --> 00:01:03,190 Deci, haideți să verificați pentru că cu o condiție. 23 00:01:03,190 --> 00:01:09,300 >> IF s nu este egal cu NULL, atunci putem Presupun că e într-adevăr este un șir, un 24 00:01:09,300 --> 00:01:14,580 tablou de caractere, și treceți la itera peste aceste caractere. 25 00:01:14,580 --> 00:01:22,240 PENTRU int i devine 0, hai, de asemenea, a declara n ca fiind egală cu lungimea șirului de e așa 26 00:01:22,240 --> 00:01:27,900 timp cât i este mai mic decât n, și pe fiecare repetare, să i incrementa. 27 00:01:27,900 --> 00:01:35,200 În cadrul acestui buclă atunci, să numim printf de% c backslash n și apoi conectați 28 00:01:35,200 --> 00:01:41,140 în paranteză această valoare s i, prin urmare, imprima un caracter la un moment dat fiecare 29 00:01:41,140 --> 00:01:42,420 din masinile din s.. 30 00:01:42,420 --> 00:01:45,210 >> Hai acum compila și rula acest program. 31 00:01:45,210 --> 00:01:47,140 Face șir. 32 00:01:47,140 --> 00:01:52,500 . / Șir de intrare mea va fi "salut". Și acolo îl avem. 33 00:01:52,500 --> 00:01:55,410 H-E-L-L-O, fiecare caracter pe o linie proprie. 34 00:01:55,410 --> 00:01:56,727