Στην C + + , το ενσωματωμένο τύπο δεδομένων " string" αντιπροσωπεύει προτάσεις, φράσεις ή λέξεις . Ωστόσο , ο τύπος δεδομένων συμβολοσειράς αντιπροσωπεύει στην πραγματικότητα αυτό που οι προγραμματιστές αποκαλούν « c- style " string . Στην αρχική γλώσσα C , προγραμματιστές αποθηκεύονται ποινές ως συλλογές ( ή πίνακες) των χαρακτήρων . Έτσι, ενώ σε C + + , μια μεταβλητή φράση δήλωση μοιάζει :
σειρά str = " Hello" ?
Στο C , η ίδια δήλωση μοιάζει :
char str [ 50 ] = " Hello" ?
Όπου " str " αντιπροσωπεύει μια σειρά από 50 χαρακτήρες . Επιπλέον , δεδομένου ότι χορδές C - στυλ είναι απλά πίνακες , όλοι τέλος με ένα Null χαρακτήρα τερματισμού ( " \\ 0 " ), που σηματοδοτεί το τέλος του string .
Εικόνων Το « c_str ( ) " Μέθοδος
το ενδιαφέρον πράγμα για έγχορδα σε C + + είναι ότι είναι μια κατηγορία , και ως μια κατηγορία περιλαμβάνει τις μεθόδους για να κάνει τη δουλειά για την σειρά . Μία από αυτές τις μεθόδους ( " c_str ()" ) επιστρέφει μια συμβολοσειρά C- στυλ που αντιπροσωπεύει το C + + χορδή. Αυτό σημαίνει ότι η τιμή που επιστρέφεται θα καταλήξει ως ένα πίνακα χαρακτήρων που περιέχει τους χαρακτήρες της σειράς, συμπεριλαμβανομένου του χαρακτήρα null τερματισμού .
Η αντιγραφή του C String
Η
για να γίνει πραγματικότητα κάτι με τη σειρά C - style προέρχονται από c_str ( ) , ο προγραμματιστής πρέπει να το βάλετε σε μια σειρά χαρακτήρων . Αυτό απαιτεί τη μέθοδο " strcpy " , το οποίο θα αντιγράψει συστοιχία ένα χαρακτήρα στον άλλο :
# include # include # include iostream > χρησιμοποιώντας namespace std ? str String = " A String " ? char str2 [ 50 ] ? strcpy ( str2 , str . c_str ( ) ) τώρα , η C - style αναπαράσταση ως συμβολοσειράς " str " θα αντιγράψει στο χαρακτήρα πίνακα " str2 " ( συμπεριλαμβανομένων των μηδενικών χαρακτήρων ) . τώρα που ο προγραμματιστής έχει ένα αντίγραφο πίνακα του string, συμπεριλαμβανομένου του null χαρακτήρα που θα ενημερώνει τον προγραμματιστή όταν τελειώνει η σειρά , γίνεται ένα θέμα απλά μετρώντας τους χαρακτήρες μέχρι το πρόγραμμα να χτυπά το null χαρακτήρα : int i = 0 ? ενώ ( ! str2 [ i ] = " \\ 0 " ) { i + + } cout < ο "ενώ" ελέγχους βρόχων κάθε χαρακτήρα από την αρχή ( το 0th θέση του χαρακτήρα ), μέχρι να φτάσει το null χαρακτήρα . Στη συνέχεια , οι εκτυπώσεις του προγράμματος i +1 ( επειδή ο δείκτης ξεκινά από το 0 , και η μηδενική θέση του χαρακτήρα δεν υπολογίζεται ), η οποία οδηγεί σε μια τιμή επιστροφής της 8 .
εικόνων Μετρώντας το χαρακτήρες
Η
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα