Ποια είναι η διαφορά μεταξύ ενός χαρακτήρα και μιας συμβολοσειράς στη C ++;


Απάντηση 1:

Μια μεταβλητή τύπου char μπορεί να διατηρήσει μια τιμή χαρακτήρα για την εφαρμογή του συνόλου χαρακτήρων

για παράδειγμα:

void foo ()

{

char c = 'α'.

}}

εδώ c κρατάει την τιμή 'a'

αλλά εάν θέλουμε να διατηρήσουμε την αξία κάποιου ονόματος "john", θα πρέπει να δηλώσουμε μια διάταξη για αυτό π.χ.

void foo ()

{

char c [] = "john";

}}

Μια συμβολοσειρά δεν είναι τίποτε άλλο παρά μια κλάση που περιέχει πίνακα χαρακτήρων αλλά τη διαχειρίζεται αυτόματα για σας. Έτσι, δεν χρειάζεται να δηλώνετε ξανά τη συστοιχία.

για παράδειγμα:

void foo ()

{

συμβολοσειρά s = "john";

}}


Απάντηση 2:

Κατ 'αρχάς, επιτρέψτε μου να σας εξηγήσω κάποια C. Το C ++ είναι σαν μια επέκταση του C, έτσι πρέπει να καταλάβετε το C για να είναι σε θέση να κωδικοποιήσει το C ++

Το C είναι μια παλιά και πολύ χαμηλή γλώσσα. Έχει πολύ λίγους ενσωματωμένους τύπους. Είμαι βέβαιος ότι τα ξέρετε ήδη. Αυτά είναι int, μακρύ, διπλό, float, ...

Ένας από αυτούς τους τύπους είναι ο χαρακτήρας (char). Και περίεργα, ο char είναι στην πραγματικότητα ένας αριθμός, ακριβώς όπως int ή μακρύς. Μπορείτε να αποθηκεύσετε οποιονδήποτε αριθμό από -128 έως +127 σε μια μεταβλητή τύπου char. Παρατηρήστε ότι υπάρχουν ακριβώς 256 αριθμοί σε αυτό το εύρος. Αυτό συμβαίνει επειδή ένας char είναι μια μεταβλητή 8-bit και 8 bits πληροφορίας μπορούν να αποθηκεύσουν ακριβώς 256 διαφορετικές τιμές.

Αυτό είναι όπου έρχονται οι πραγματικοί «χαρακτήρες». Στον βασικό πίνακα ASCII, υπάρχουν ακριβώς 128 χαρακτήρες, απαριθμούνται από το 0 έως το 127. Πείτε ότι έχετε κάτι σαν:

char my_char = 'β';

Η πραγματική τιμή που είναι αποθηκευμένη στο my_char είναι η τιμή ASCII αν είναι "b" (δηλαδή 98). Έτσι, στη C (και C ++) όταν χρησιμοποιούμε μια μεταβλητή char, στην πραγματικότητα αποθηκεύουμε την τιμή ASCII ενός χαρακτήρα ως αριθμού.

Τώρα, επιτρέψτε μου να σας εξηγήσω τις χορδές. Στην παλαιά C, δεν υπάρχει τέτοιος τύπος δεδομένων τύπου συμβολοσειράς. Μπορείτε να αποθηκεύσετε τις συμβολοσειρές μόνο ως συστοιχία χαρακτήρων.

Υπάρχει ένα παράδειγμα:

char my_string [] = "Είμαι μια σειρά χαρακτήρων"?
// παρατηρήστε τη διαφορά στην προσφορά από το προηγούμενο παράδειγμα

Εδώ, δηλώσαμε μια συστοιχία char και αποθηκεύσαμε τη συμβολοσειρά σε αυτήν. Αλλά υπάρχει ένα μεγάλο πρόβλημα. Χορδές σαν αυτές είναι δύσκολο να λειτουργήσουν. Ευτυχώς, στη C ++ υπάρχει τύπος συμβολοσειράς. Στην C ++, η συμβολοσειρά είναι μια κλάση. Στον πυρήνα του, εξακολουθεί να είναι μια σειρά char, απλά ότι υπάρχουν λειτουργίες σε αυτή την κατηγορία που κάνουν την αντιμετώπιση των χορδών ευκολότερη.


Απάντηση 3:

Κατ 'αρχάς, επιτρέψτε μου να σας εξηγήσω κάποια C. Το C ++ είναι σαν μια επέκταση του C, έτσι πρέπει να καταλάβετε το C για να είναι σε θέση να κωδικοποιήσει το C ++

Το C είναι μια παλιά και πολύ χαμηλή γλώσσα. Έχει πολύ λίγους ενσωματωμένους τύπους. Είμαι βέβαιος ότι τα ξέρετε ήδη. Αυτά είναι int, μακρύ, διπλό, float, ...

Ένας από αυτούς τους τύπους είναι ο χαρακτήρας (char). Και περίεργα, ο char είναι στην πραγματικότητα ένας αριθμός, ακριβώς όπως int ή μακρύς. Μπορείτε να αποθηκεύσετε οποιονδήποτε αριθμό από -128 έως +127 σε μια μεταβλητή τύπου char. Παρατηρήστε ότι υπάρχουν ακριβώς 256 αριθμοί σε αυτό το εύρος. Αυτό συμβαίνει επειδή ένας char είναι μια μεταβλητή 8-bit και 8 bits πληροφορίας μπορούν να αποθηκεύσουν ακριβώς 256 διαφορετικές τιμές.

Αυτό είναι όπου έρχονται οι πραγματικοί «χαρακτήρες». Στον βασικό πίνακα ASCII, υπάρχουν ακριβώς 128 χαρακτήρες, απαριθμούνται από το 0 έως το 127. Πείτε ότι έχετε κάτι σαν:

char my_char = 'β';

Η πραγματική τιμή που είναι αποθηκευμένη στο my_char είναι η τιμή ASCII αν είναι "b" (δηλαδή 98). Έτσι, στη C (και C ++) όταν χρησιμοποιούμε μια μεταβλητή char, στην πραγματικότητα αποθηκεύουμε την τιμή ASCII ενός χαρακτήρα ως αριθμού.

Τώρα, επιτρέψτε μου να σας εξηγήσω τις χορδές. Στην παλαιά C, δεν υπάρχει τέτοιος τύπος δεδομένων τύπου συμβολοσειράς. Μπορείτε να αποθηκεύσετε τις συμβολοσειρές μόνο ως συστοιχία χαρακτήρων.

Υπάρχει ένα παράδειγμα:

char my_string [] = "Είμαι μια σειρά χαρακτήρων"?
// παρατηρήστε τη διαφορά στην προσφορά από το προηγούμενο παράδειγμα

Εδώ, δηλώσαμε μια συστοιχία char και αποθηκεύσαμε τη συμβολοσειρά σε αυτήν. Αλλά υπάρχει ένα μεγάλο πρόβλημα. Χορδές σαν αυτές είναι δύσκολο να λειτουργήσουν. Ευτυχώς, στη C ++ υπάρχει τύπος συμβολοσειράς. Στην C ++, η συμβολοσειρά είναι μια κλάση. Στον πυρήνα του, εξακολουθεί να είναι μια σειρά char, απλά ότι υπάρχουν λειτουργίες σε αυτή την κατηγορία που κάνουν την αντιμετώπιση των χορδών ευκολότερη.


Απάντηση 4:

Κατ 'αρχάς, επιτρέψτε μου να σας εξηγήσω κάποια C. Το C ++ είναι σαν μια επέκταση του C, έτσι πρέπει να καταλάβετε το C για να είναι σε θέση να κωδικοποιήσει το C ++

Το C είναι μια παλιά και πολύ χαμηλή γλώσσα. Έχει πολύ λίγους ενσωματωμένους τύπους. Είμαι βέβαιος ότι τα ξέρετε ήδη. Αυτά είναι int, μακρύ, διπλό, float, ...

Ένας από αυτούς τους τύπους είναι ο χαρακτήρας (char). Και περίεργα, ο char είναι στην πραγματικότητα ένας αριθμός, ακριβώς όπως int ή μακρύς. Μπορείτε να αποθηκεύσετε οποιονδήποτε αριθμό από -128 έως +127 σε μια μεταβλητή τύπου char. Παρατηρήστε ότι υπάρχουν ακριβώς 256 αριθμοί σε αυτό το εύρος. Αυτό συμβαίνει επειδή ένας char είναι μια μεταβλητή 8-bit και 8 bits πληροφορίας μπορούν να αποθηκεύσουν ακριβώς 256 διαφορετικές τιμές.

Αυτό είναι όπου έρχονται οι πραγματικοί «χαρακτήρες». Στον βασικό πίνακα ASCII, υπάρχουν ακριβώς 128 χαρακτήρες, απαριθμούνται από το 0 έως το 127. Πείτε ότι έχετε κάτι σαν:

char my_char = 'β';

Η πραγματική τιμή που είναι αποθηκευμένη στο my_char είναι η τιμή ASCII αν είναι "b" (δηλαδή 98). Έτσι, στη C (και C ++) όταν χρησιμοποιούμε μια μεταβλητή char, στην πραγματικότητα αποθηκεύουμε την τιμή ASCII ενός χαρακτήρα ως αριθμού.

Τώρα, επιτρέψτε μου να σας εξηγήσω τις χορδές. Στην παλαιά C, δεν υπάρχει τέτοιος τύπος δεδομένων τύπου συμβολοσειράς. Μπορείτε να αποθηκεύσετε τις συμβολοσειρές μόνο ως συστοιχία χαρακτήρων.

Υπάρχει ένα παράδειγμα:

char my_string [] = "Είμαι μια σειρά χαρακτήρων"?
// παρατηρήστε τη διαφορά στην προσφορά από το προηγούμενο παράδειγμα

Εδώ, δηλώσαμε μια συστοιχία char και αποθηκεύσαμε τη συμβολοσειρά σε αυτήν. Αλλά υπάρχει ένα μεγάλο πρόβλημα. Χορδές σαν αυτές είναι δύσκολο να λειτουργήσουν. Ευτυχώς, στη C ++ υπάρχει τύπος συμβολοσειράς. Στην C ++, η συμβολοσειρά είναι μια κλάση. Στον πυρήνα του, εξακολουθεί να είναι μια σειρά char, απλά ότι υπάρχουν λειτουργίες σε αυτή την κατηγορία που κάνουν την αντιμετώπιση των χορδών ευκολότερη.