Συνάρτηση Stol() σε C++

Synartese Stol Se C



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

Λειτουργία stol σε C++

Το stol είναι μια ενσωματωμένη συνάρτηση C++ που παρέχεται στη βιβλιοθήκη std. Μετατρέπει τις συμβολοσειρές σε μεγάλους ακέραιους αριθμούς. Μετατρέπει το περιεχόμενο συμβολοσειράς σε έναν ακέραιο αριθμό της καθορισμένης βάσης και επιστρέφει μια μεγάλη ακέραια τιμή. Χρειάζονται τρεις παράμετροι, η μία είναι η συμβολοσειρά εισόδου, η δεύτερη είναι η παράμετρος του αντικειμένου και η τρίτη είναι η αριθμητική βάση. Η σύνταξη της συνάρτησης stol δίνεται παρακάτω, ρίξτε μια ματιά:









Η συνάρτηση stol παίρνει τρεις παραμέτρους: input_string, μέγεθος και βάση. Το 'input_string' αντιπροσωπεύει τη συμβολοσειρά εισόδου που πρέπει να μετατραπεί σε μεγάλο ακέραιο αριθμό.



Η παράμετρος 'μέγεθος' αντιπροσωπεύει το αντικείμενο του τύπου size_t που φέρει την επόμενη θέση χαρακτήρων στη συμβολοσειρά εισόδου μετά την αριθμητική τιμή. Μπορεί να είναι μηδενικός δείκτης εάν δεν απαιτείται να χρησιμοποιηθεί.





Η τρίτη παράμετρος, η παράμετρος «βάση» αντιπροσωπεύει τη βάση στην οποία πρέπει να ερμηνευτεί η συμβολοσειρά. Για παράδειγμα, εάν δοθεί η βάση '2', η συμβολοσειρά θα ερμηνευτεί ως ο ακέραιος αριθμός βάσης 2. Η προεπιλεγμένη τιμή της βασικής παραμέτρου είναι 10 και εάν παρέχεται 0 τότε η βασική τιμή θα καθοριστεί από τη μορφή της ακολουθίας. Η συνάρτηση stol επιστρέφει τον μεγάλο ακέραιο αριθμό που αντιπροσωπεύει την τιμή int μιας δεδομένης συμβολοσειράς.

Τώρα, ας διερευνήσουμε μερικά παραδείγματα για να κατανοήσουμε πώς λειτουργεί η συνάρτηση stol στην C++.



Παράδειγμα #1

Σε αυτό το παράδειγμα, θα παρέχουμε δεκαδικές και δεκαεξαδικές συμβολοσειρές για να ελέγξουμε πώς η συνάρτηση stol τις μετατρέπει σε δεκαδικούς και δεκαεξαδικούς ακέραιους αριθμούς.

Το 'dec = 123456789' είναι μια δεκαδική συμβολοσειρά και μετατρέπεται σε μακρύ ακέραιο χρησιμοποιώντας τη συνάρτηση stol (dec,&size). Σημειώστε ότι η βάση δεν παρέχεται στη συνάρτηση ως παράμετρος εισόδου, η οποία ως αποτέλεσμα χρησιμοποιεί την προεπιλεγμένη βάση 10 για να μετατρέψει τη συμβολοσειρά σε δεκαδικό αριθμό. Ωστόσο, για τη μετατροπή της συμβολοσειράς από δεκαεξαδικό αριθμό σε δεκαδικό αριθμό, παρέχεται η βάση 16 ως παράμετρος εισόδου stol(hex, nullptr, 16). Όπως γνωρίζουμε, η βάση του 16 αντιπροσωπεύει έναν δεκαεξαδικό αριθμό.

#include

#include

#include

ενθ κύριος ( )

{

std :: σειρά Δεκ = '123456789' ;
std :: σειρά μαγεύω = 'a2bf3c' ;
std :: σειρά :: Τύπος Μεγέθους Μέγεθος ;
μακρύς lidec = std :: τραπέζι ( Δεκέμβριος, & Μέγεθος ) ;
μακρύς lihex = std :: τραπέζι ( μαγεύω, nullptr , 16 ) ;
std :: cout << 'Εισαγωγή δεκαδικής συμβολοσειράς' << Δεκ << 'μετατραπεί σε long int' << lidec << ' \n ' ;
std :: cout << 'Είσοδος δεκαεξαδικής συμβολοσειράς' << μαγεύω << 'μετατραπεί σε long int' << lihex << ' \n ' ;
ΕΠΙΣΤΡΟΦΗ 0 ;


}

Εδώ είναι η ακόλουθη έξοδος. Σημειώστε ότι η δεκαδική συμβολοσειρά '123456789' μετατράπηκε σε '123456789' δεκαδικό μεγάλο ακέραιο. Ενώ η δεκαεξαδική συμβολοσειρά 'a2bf3c' μετατράπηκε σε δεκαεξαδικό αριθμό '10665788'. Ακολουθούν τα απαραίτητα βήματα που μπορείτε να ακολουθήσετε για να μάθετε πώς γίνεται η μετατροπή από τη συνάρτηση stol:

( A2BF3C ) ₁6 = ( 10 × 16 5 ) + ( δύο × 16 4 ) + ( έντεκα × 16 ³ ) + ( δεκαπέντε × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁0

Παράδειγμα # 2

Σε αυτό το παράδειγμα, θα μετατρέψουμε έναν δυαδικό αριθμό χρησιμοποιώντας τη συνάρτηση stol. Ας δούμε τον παρακάτω κώδικα και ας κατανοήσουμε τη λειτουργία του κώδικα. Το '1010110110' δίνεται ως συμβολοσειρά εισόδου και η βάση 2 παρέχεται ως η βασική παράμετρος εισόδου stol(bin,&size, 2), που αντιπροσωπεύει τον αριθμό σε δυαδική μορφή. Η συνάρτηση stol θα μετατρέψει τον δυαδικό αριθμό σε δεκαδικό αριθμό ακολουθώντας αυτά τα βήματα:

( 1010110110 ) = ( 1 × δύο ) + ( 0 × δύο ) + ( 1 × δύο ) + ( 0 × δύο 6 ) + ( 1 × δύο 5 ) + ( 1 × δύο 4 ) + ( 0 × δύο ³ ) + ( 1 × δύο ² ) + ( 1 × δύο ¹ ) + ( 0 × δύο ) = ( 694 ) ₁0 #include

#include

#include

ενθ κύριος ( )

{

std :: σειρά αποθήκη = '1010110110' ;
std :: σειρά :: Τύπος Μεγέθους Μέγεθος ;
μακρύς libin = std :: τραπέζι ( αποθήκη, & Μέγεθος, δύο ) ;
std :: cout << 'Είσοδος δυαδικής συμβολοσειράς' << αποθήκη << 'μετατραπεί σε long int' << libin << ' \n ' ;
ΕΠΙΣΤΡΟΦΗ 0 ;


}

Όπως μπορείτε να δείτε ότι η συνάρτηση stol επέστρεψε το ίδιο αποτέλεσμα με τη γενική διαδικασία μετατροπής δυαδικού σε δεκαδικό.

Παράδειγμα # 3

Σε αυτό το παράδειγμα, θα δούμε τι θα συμβεί εάν δοκιμάσουμε τη συνάρτηση stol με μη έγκυρη είσοδο. Μια συμβολοσειρά πολλών χαρακτήρων θα παρέχεται στη συνάρτηση stol και το 0 θα παρέχεται ως η βασική τιμή, έτσι ώστε η συνάρτηση να προσδιορίζει τη βάση της συμβολοσειράς αυτόματα. Εδώ είναι ο κωδικός:

Ένα σύνολο χαρακτήρων παρέχεται ως συμβολοσειρά εισόδου που δεν καθορίζεται από καμία βασική τιμή, π.χ. 10, 16, 2, κ.λπ., επομένως η συνάρτηση θα επιστρέψει μια τιμή σφάλματος.

#include

#include

#include

ενθ κύριος ( )

{

std :: σειρά χρ = 'abcdefgh' ;

std :: σειρά :: Τύπος Μεγέθους Μέγεθος ;
μακρύς str = std :: τραπέζι ( chr, nullptr , 0 ) ;
std :: cout << 'Εισαγωγή συμβολοσειράς χαρακτήρων' << χρ << 'μετατραπεί σε long int' << str << ' \n ' ;
ΕΠΙΣΤΡΟΦΗ 0 ;


}

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

Παράδειγμα #4

Σε αυτό το παράδειγμα, θα παρέχουμε έναν συνδυασμό έγκυρης και μη έγκυρης εισόδου για να δούμε το αποτέλεσμα της συνάρτησης stol().

Η συμβολοσειρά εισόδου είναι ένας συνδυασμός έγκυρων και μη έγκυρων χαρακτήρων, '123xf25'. Το '0' παρέχεται ως βάση εισόδου, έτσι ώστε η συνάρτηση να καθορίζει τη βάση της συμβολοσειράς εισόδου αυτόματα με βάση τον τύπο των χαρακτήρων.

#include

#include

#include

ενθ κύριος ( )

{

std :: σειρά χρ = '123xf25' ;
std :: σειρά :: Τύπος Μεγέθους Μέγεθος ;
μακρύς str = std :: τραπέζι ( chr, nullptr , 0 ) ;
std :: cout << 'Συμβολοσειρά εισόδου' << χρ << 'μετατραπεί σε long int' << str << ' \n ' ;
ΕΠΙΣΤΡΟΦΗ 0 ;


}

Ακολουθεί η έξοδος που δείχνει τη λειτουργία της συνάρτησης stol με έναν συνδυασμό έγκυρης και μη έγκυρης εισόδου:

Σημειώστε ότι η συνάρτηση μετέτρεψε το '123' σε δεκαδικό αριθμό '123' και απέρριψε την υπόλοιπη συμβολοσειρά καθώς έλαβε μια μη έγκυρη είσοδο 'x'. Η συμβολοσειρά μετά τον χαρακτήρα 'x' δεν μετατρέπεται από τη συνάρτηση stol, επιστρέφοντας μόνο τους πρώτους χαρακτήρες της συμβολοσειράς σε μήκος int.

συμπέρασμα

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