Πώς να χρησιμοποιήσετε τη συνάρτηση Itoa στο C

Pos Na Chresimopoiesete Te Synartese Itoa Sto C



Η γλώσσα προγραμματισμού C κυκλοφόρησε πριν από πέντε δεκαετίες. Από τότε, έχει αποκτήσει τεράστια δημοτικότητα στον κόσμο του προγραμματισμού. Ξεχωρίζει από τις άλλες γλώσσες λόγω των χαρακτηριστικών του, όπως η δομική απλότητα, οι λειτουργίες, η φορητότητα, η αποτελεσματική διαχείριση μνήμης κ.λπ. Παρά το γεγονός ότι έχουν διάφορες άλλες δυνατότητες, οι λειτουργίες στη C είναι τα πιο σημαντικά στοιχεία που βοηθούν πολλούς χρήστες να γράψουν τα ισχυρά αποσπάσματα κώδικα.

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







Πώς να χρησιμοποιήσετε τη συνάρτηση Itoa στο C

Ας ξεκινήσουμε με τα βασικά. Εδώ είναι η απλή σύνταξη για τη συνάρτηση itoa:



ενθ κύριος ( ) {

ενθ σε ένα = 12345 ;
απανθρακώνω str [ είκοσι ] ;
πνίγηκε ( σε ένα , str , 10 ) ;
printf ( 'Ακέραιος αριθμός: %d \n Συμβολοσειρά: %s \n ' , σε ένα , str ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;


}

Στο συγκεκριμένο πρόγραμμα οι λεπτομέρειες έχουν ως εξής:



  1. το num είναι ο ακέραιος αριθμός
  2. str είναι ο χαρακτήρας
  3. 10 είναι το μπάσο

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





#include

#include

κενός πνίγηκε ( ενθ σε ένα , απανθρακώνω * str , ενθ βάση ) {

ενθ Εγώ = 0 ;
ενθ είναι Αρνητικό = 0 ;

αν ( σε ένα == 0 ) {
str [ Εγώ ++ ] = '0' ;
str [ Εγώ ] = ' \0 ' ;
ΕΠΙΣΤΡΟΦΗ ;
}


αν ( σε ένα < 0 && βάση != 10 ) {

είναι Αρνητικό = 1 ;
σε ένα = - σε ένα ;
}

ενώ ( σε ένα != 0 ) {
ενθ rem = σε ένα % βάση ;

str [ Εγώ ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'ένα' : rem + '0' ;

σε ένα = σε ένα / βάση ;
}

αν ( είναι Αρνητικό && βάση == 10 )
str [ Εγώ ++ ] = '-' ;

str [ Εγώ ] = ' \0 ' ;

ενθ αρχή = 0 ;
ενθ τέλος = Εγώ - 1 ;


ενώ ( αρχή < τέλος ) {

απανθρακώνω θερμοκρασία = str [ αρχή ] ;
str [ αρχή ] = str [ τέλος ] ;
str [ τέλος ] = θερμοκρασία ;
αρχή ++;
τέλος --;
}
}

ενθ κύριος ( ) {
ενθ σε ένα ;
printf ( 'Εισαγάγετε έναν ακέραιο αριθμό:' ) ;

αν ( scanf ( '%ρε' , & σε ένα ) != 1 ) {
fprintf ( stderr , 'Μη έγκυρη εισαγωγή. Εισαγάγετε έναν ακέραιο αριθμό. \n ' ) ;
ΕΠΙΣΤΡΟΦΗ EXIT_FAILURE ;
}

ενθ μέγιστο_μέγεθος = snprintf ( ΜΗΔΕΝΙΚΟ , 0 , '%ρε' , σε ένα ) + 1 ;
απανθρακώνω * str = ( απανθρακώνω * ) malloc ( μέγιστο_μέγεθος ) ;

αν ( str == ΜΗΔΕΝΙΚΟ ) {
fprintf ( stderr , 'Η εκχώρηση μνήμης απέτυχε \n ' ) ;
ΕΠΙΣΤΡΟΦΗ EXIT_FAILURE ;
}


πνίγηκε ( σε ένα , str , 10 ) ;

printf ( 'Ακέραιος αριθμός: %d \n Συμβολοσειρά: %s \n ' , σε ένα , str ) ;

Ελεύθερος ( str ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;


}

Στο προηγούμενο πρόγραμμα, η itoa (int num, char *str, int βάση) είναι η συνάρτηση itoa. Επιπλέον, η ακόλουθη σύνταξη αντιστοιχίζει απευθείας το μηδέν στο αποτέλεσμα όταν ο αριθμός εισόδου είναι επίσης μηδέν:

αν ( σε ένα == 0 ) {

str [ Εγώ ++ ] = '0' ;
str [ Εγώ ] = ' \0 ' ;
ΕΠΙΣΤΡΟΦΗ ;


}

Όταν ο αριθμός εισόδου είναι αρνητικός και η βάση δεν είναι επίσης 10, οι ακόλουθες γραμμές προγράμματος θα ορίσουν την αρνητική σημαία:



αν ( σε ένα < 0 && βάση != 10 ) {

είναι Αρνητικό = 1 ;
σε ένα = - σε ένα ;

Ο παρακάτω βρόχος επεξεργάζεται όλα τα ψηφία και τα μετατρέπει σε αντίστοιχο χαρακτήρα. Ως εκ τούτου, για βάσεις που είναι μεγαλύτερες από 10, το πρόγραμμα χρησιμοποιεί τα γράμματα 'a' έως 'f' για τα ψηφία 10 έως 15.

}

ενώ ( σε ένα != 0 ) {

ενθ rem = σε ένα % βάση ;

str [ Εγώ ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'ένα' : rem + '0' ;

σε ένα = σε ένα / βάση ;

}

Όταν ο αριθμός είναι αρχικά αρνητικός και η βάση είναι 10, το πρόγραμμα θα προσθέσει το αρνητικό πρόσημο σε μια συμβολοσειρά αποτελέσματος.

αν ( είναι Αρνητικό && βάση == 10 )

str [ Εγώ ++ ] = '-' ;

Οι ακόλουθες γραμμές τερματίζουν τη συμβολοσειρά αποτελέσματος και στη συνέχεια την αντιστρέφουν καθώς τα ψηφία λαμβάνονται με αντίστροφη σειρά κατά τη διαδικασία μετατροπής:

str [ Εγώ ] = ' \0 ' ;

// Αντιστρέψτε τη συμβολοσειρά

ενθ αρχή = 0 ;

ενθ τέλος = Εγώ - 1 ;

ενώ ( αρχή < τέλος ) {

απανθρακώνω θερμοκρασία = str [ αρχή ] ;
str [ αρχή ] = str [ τέλος ] ;
str [ τέλος ] = θερμοκρασία ;
αρχή ++;
τέλος --;


}

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

Ωστόσο, εάν εισαγάγετε έναν μη ακέραιο αριθμό, το πρόγραμμα θα εμφανίσει το ακόλουθο αποτέλεσμα:

συμπέρασμα

Έτσι μπορείτε εύκολα να εφαρμόσετε και να χρησιμοποιήσετε τη συνάρτηση itoa στο C. Χρησιμοποιήσαμε ένα λεπτομερές παράδειγμα που περιέχει πολλές συναρτήσεις για να μετατρέψετε τον ακέραιο σε συμβολοσειρά. Θυμηθείτε, είναι μόνο ένα παράδειγμα, αλλά μπορείτε να συνδυάσετε τη συνάρτηση itoa με διάφορες λειτουργίες για να γράψετε καταπληκτικά προγράμματα.