C ++ strxfrm () - C ++ Τυπική βιβλιοθήκη

Η συνάρτηση strxfrm () στο C ++ μετατρέπει μια δεδομένη συμβολοσειρά byte που τερματίζεται σε μηδενική μορφή σε μια καθορισμένη εφαρμογή.

Η συνάρτηση strxfrm () μετατρέπει τη συμβολοσειρά έτσι ώστε η σύγκριση δύο μετασχηματισμένων συμβολοσειρών χρησιμοποιώντας τη συνάρτηση strcmp () να παράγει το ίδιο αποτέλεσμα με τη σύγκριση των αρχικών συμβολοσειρών χρησιμοποιώντας τη συνάρτηση strcoll () στις τρέχουσες τοπικές θέσεις C.

Για παράδειγμα, τα x και y είναι δύο χορδές. Τα a και b είναι δύο χορδές που σχηματίζονται μετασχηματίζοντας x και y αντίστοιχα χρησιμοποιώντας τη συνάρτηση strxfrm. Στη συνέχεια, μια κλήση στο strcmp (a, b) είναι ίδια με την κλήση strcoll (x, y).

πρωτότυπο strxfrm ()

 size_t strxfrm (char * dest, const char * src, size_t count);

Η συνάρτηση strxfrm () μετατρέπει τους πρώτους χαρακτήρες μέτρησης της συμβολοσειράς που επισημαίνονται από το src σε μια φόρμα καθορισμένης εφαρμογής και το αποτέλεσμα αποθηκεύεται στη θέση μνήμης που υποδεικνύεται από τον προορισμό.

Η συμπεριφορά αυτής της συνάρτησης δεν καθορίζεται εάν:

  • το μέγεθος του προορισμού είναι μικρότερο από το απαιτούμενο μέγεθος.
  • επικάλυψη dest και src.

Ορίζεται στο αρχείο κεφαλίδας "> αρχείο κεφαλίδας.

παράμετροι strxfrm ()

  • dest: δείκτης στον πίνακα όπου αποθηκεύεται η μετασχηματισμένη συμβολοσειρά.
  • src: δείκτης προς τη μηδενική τερματική συμβολοσειρά που πρόκειται να μετατραπεί.
  • μέτρηση: μέγιστος αριθμός χαρακτήρων προς μετατροπή.

strxfrm () Επιστροφή τιμή

Η συνάρτηση strxfrm () επιστρέφει τον αριθμό του χαρακτήρα που έχει μετατραπεί, εξαιρουμένου του μηδενικού χαρακτήρα τερματισμού ' 0'.

Παράδειγμα: Πώς λειτουργεί η λειτουργία strxfrm ();

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 strcoll επέστρεψε -1 Πριν από τη μετατροπή, το strcmp επέστρεψε 1 Μετά τη μετατροπή, το strcmp επέστρεψε -1

ενδιαφέροντα άρθρα...