>> DAVID J. MALAN: Ας πάρουμε τα πράγματα ένα βήμα παραπέρα, τώρα.
Ας υποθέσουμε ότι δεν θέλουν απλά την εκτύπωση όλων των προγραμμάτων μου
επιχειρήματα της γραμμής εντολών.
Αλλά εγώ, αντ 'αυτού, θέλετε να εκτυπώσετε όλα τα μεμονωμένων χαρακτήρων σε κάθε ένα από
επιχειρήματα της γραμμής εντολών μου, μία ανά γραμμή, έτσι ώστε κατά την λειτουργία αυτή
πρόγραμμα, απλά δείτε ένα ρεύμα χαρακτήρες στην οθόνη ότι
συλλογικά είναι από αυτή την ακολουθία μου επιχειρήματα της γραμμής εντολών.
>> Λοιπόν, πώς μπορώ να κάνω αυτό;
Μπορώ να κρατήσει ανέπαφη βρόχο μου από πριν όπου I 'Επαναληπτική από i μέχρι
Argc, προκειμένου να ενσωματωθούν κατά τη διάρκεια των οι ίδιοι επιχειρήματα της γραμμής εντολών.
Αλλά τώρα, σε κάθε επανάληψη του εν λόγω βρόχο, θα πρέπει να επαναλάβει τώρα πάνω από κάθε
από τους χαρακτήρες ή χαρακτήρες σε μια συγκεκριμένη συμβολοσειρά.
Έτσι για να το κάνουμε αυτό, θα πρέπει να έχετε ένα πιο βρόχο.
>> Ας προσθέσω ότι.
για int, ας το ονομάσουμε j, ισούται με 0.
Τώρα είμαι πρόκειται να πρέπει να ενσωματώσει μέχρι το μήκος του
ρεύμα στοιχειοσειράς στο argv.
Έτσι, επιτρέψτε μου να δώσω στον εαυτό μου μια άλλη τοπική μεταβλητή, θα το ονομάσουμε n, και να ορίσετε
ότι ισούται με το μήκος της συμβολοσειράς τρέχουσα επιχείρημα, το οποίο πρόκειται να είναι
βρέθηκαν στο argv βραχίονα i ερωτηματικό.
>> Επιτρέψτε μου τώρα να επαναλάβει από j μέχρι μέχρι n ακολουθούμενη από μια
αυξήσετε σε κάθε επανάληψη.
Ας τώρα να εκτυπώσετε το άτομο χαρακτήρες στην οθόνη.
Printf% C Αυτό το χρονικό διάστημα που ακολουθείται από ένα νέο γραμμή, κοντά απόσπασμα, κόμμα, και τώρα
χρειάζονται την ι-ου χαρακτήρα στο επιχείρημα i-th.
>> Έτσι για να πάρετε σε αυτό, μπορώ απλά καθορίσετε βραχίονα ARV i να
πάρετε το επιχείρημα i-th.
Και τότε μπορώ να βουτήξει σε ένα βαθύτερο επίπεδο και να κάνουμε ένα δευτερεύον ευρετήριο του
βραχίονα j, κοντά παρένθεση, ερωτηματικό, Αποθήκευση.
Και ας πάμε τώρα καταρτίζουν και να εκτελέσετε αυτό το πρόγραμμα.
>> Κάντε ARGV2 -
δεν είναι αρκετά αυτό που περίμενα.
Ας μετακινηθείτε στο πρώτο από αυτά τα μηνύματα λάθους.
Και στο κόκκινο εδώ, βλέπουμε σφάλμα, σιωπηρά δηλώνοντας συνάρτηση βιβλιοθήκης
strlen με τον τύπο -
oh, περιμένετε ένα λεπτό.
Αυτή είναι η πρώτη φορά που έχω χρησιμοποιήσει strlen, και δεν είχα προβλέψει
θέλουν αυτό στην αρχή, γι 'αυτό δεν περιλαμβάνει το αρχείο κεφαλίδας που δηλώνει
συνάρτηση μήκος συμβολοσειράς.
>> Έτσι, στην κορυφή του αρχείου μου, ανάκληση, έχω CS50.h.
Έχω πρότυπο io.h.
Αλλά τελικά, και το ξέρω από διαβάζοντας την τεκμηρίωση, ότι χρειάζομαι
ένα τρίτο αρχείο κεφαλίδας αν, πράγματι, θέλετε να χρησιμοποιήσετε τη λειτουργία strlen.
Η λειτουργία αυτή έχει δηλωθεί στο string.h.
>> Ας το αποθηκεύσετε, μεταγλώττιση, και να τρέξει.
Και αυτή τη φορά, το κάνουμε όχι μόνο δείτε κάθε ένα από τα επιχειρήματα.
Εμείς αντί να δούμε κάθε ένα από τα επιχειρήματα ένα χαρακτήρα τη φορά.