>> David J. MALAN: Să luăm lucrurile un pas mai departe, acum.
Să presupunem că nu vreau doar pentru a imprima toate din programul meu
argumente în linia de comandă.
Dar eu, în schimb, doriți să imprimați toate a caractere individuale din fiecare dintre
argumentele mele de linie de comandă, unul pe linie, astfel încât pe care rulează acest
Programul, văd pur și simplu un flux de caracterele de pe ecran care
colectiv sunt din secvență mea de argumente în linia de comandă.
>> Ei bine, cum pot face acest lucru?
Eu pot păstra intacte bucla mea de înainte prin care am iterative de la i până
Argc, în scopul de a integra peste argumente în linia de comandă propriu-zise.
Dar acum, în fiecare iterație de care buclă, am nevoie pentru a repeta acum peste fiecare
de caractere sau caractere într-un șir specific.
Deci, pentru a face acest lucru, am nevoie de mai mult de o buclă.
>> Să adăugăm că.
pentru Int, să-i zicem j, este egal cu 0.
Acum am de gând să necesitatea de a integra până la lungimea
șir de curent în ARGV.
Deci, lasă-mă să mă dau un alt nivel local variabilă, vom numi n, și a stabilit
care egală cu lungimea șirului a argument curent, care va fi
găsite în ARGV suport i virgulă.
>> Permiteți-mi acum repeta de la j până până urmat n de o
incrementa la fiecare iterație.
Să acum imprima individului caracterele de pe ecran.
Printf% c acest timp, urmată de o nouă linie, citat de aproape, virgulă, iar acum am
Trebuie caracterul j în argumentul-i-lea.
>> Deci, pentru a ajunge la asta, eu pot pur și simplu specifica suport ARV i la
obține argumentul i-lea.
Și apoi m-am pot arunca cu capul într-un nivel mai profund și de a face un index secundar de
j suport, aproape paranteză, punct și virgulă, Salvare.
Și să acum compila și rula acest program.
>> Face ARGV2 -
nu destul de ceea ce mă așteptam.
Să derulați până la primul dintre aceste mesaje de eroare.
Și în roșu aici, vedem de eroare, implicit, declararea funcție de bibliotecă
strlen de tip -
oh, așteaptă un minut.
Aceasta este prima dată când l-am folosit strlen, iar eu nu am anticipat
doresc o la început, așa că nu a inclus fișierul antet care declară
o funcție de lungime șir.
>> Deci, în partea de sus a fișierului mea, amintesc, am CS50.h.
Am io.h. standard,
Dar se pare, și eu știu acest lucru de la citind documentația, că am nevoie de
un fișier antet al treilea dacă, într-adevăr, doriți să folosiți funcția strlen.
Această funcție este declarată în string.h.
>> Să salvați din nou fișierul, compila, și a alerga.
Și de data asta, ne-am face nu doar a se vedea fiecare dintre argumentele.
Ne vedem în loc de fiecare dintre argumentele un caracter la un moment dat.