Πώς να διαβάσετε μια συμβολοσειρά στο C

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

Βήμα 1

Κατανοήστε τα βασικά. Μια συμβολοσειρά C είναι ένας πίνακας γραφήματος τύπου. Όπως συμβαίνει με όλους τους πίνακες C, το πρώτο στοιχείο καταχωρείται στο 0 και το τελευταίο στο "μήκος συμβολοσειράς μείον 1". Συνήθως, ο μεταγλωττιστής εισάγει NULL στην τελευταία θέση, οπότε η συμβολοσειρά μπορεί να κρατήσει "μήκος συμβολοσειράς μείον 1" στοιχεία. Το Null ισοδυναμεί με 0x00 σε ακέραια μορφή και '\0' σε μορφή char. Τα στοιχεία έχουν πρόσβαση από τον τελεστή "[]". Το βήμα 2 επεξηγεί αυτές τις έννοιες.

Το βίντεο της ημέρας

Βήμα 2

Προσθέστε την "οδηγία συμπερίληψης" παρακάτω σε οποιοδήποτε αρχείο προέλευσης πριν χρησιμοποιήσετε τις λειτουργίες αυτού του σεμιναρίου:

#include < stdio.h >

Βήμα 3

Δηλώστε μια συμβολοσειρά C. Ο παρακάτω κώδικας δείχνει μια δήλωση χρησιμοποιώντας τη μέθοδο στατικής και δείκτη:

// στατική δήλωση char str[50] = {0}; // σύντομος τρόπος προετοιμασίας όλων των στοιχείων σε 0 // str[49] είναι NULL // str έχει χωρητικότητα 48 χαρακτήρες // δήλωση με δείκτη char pStr = NULL; // χωρίς εκχώρηση μνήμης pStr = (χαρ)malloc (50); // αυτό γίνεται από το "malloc()"

Βήμα 4

Ανάγνωση δεδομένων σε μια συμβολοσειρά C χρησιμοποιώντας το "scanf()," που διαβάζει μια σειρά από συμβολοσειρές που χωρίζονται με κενό από το τυπικό εισάγει και τις τοποθετεί στις διευθύνσεις που ανήκουν στις κατάλληλες μεταβλητές αναφοράς, σύμφωνα με μια «μορφή σειρά":

int n; printf("Εισαγάγετε το όνομα και την ηλικία σας: "); scanf("%s%d", str, &n); // printf("Το όνομά σου είναι %s και είσαι %d παλιός\n", str, n);

Βήμα 5

Τοποθετήστε δεδομένα σε μια συμβολοσειρά C χρησιμοποιώντας την απλούστερη συνάρτηση "gets()", η οποία διαβάζει δεδομένα από την τυπική είσοδο μόνο σε μια συμβολοσειρά:

printf("Εισαγάγετε το επώνυμό σας: "); παίρνει (str); printf("Το όνομά σας είναι %s\n", str);

Βήμα 6

Διαβάστε τα δεδομένα αρχείου σε μια συμβολοσειρά C χρησιμοποιώντας "fscanf()"; Αυτή η συνάρτηση είναι ανάλογη με το "scanf()":

ΑΡΧΕΙΟ* pFile; pFile = fopen("myFile.txt", "r"); // υποθέστε ότι το αρχείο υπάρχει και έχει δεδομένα εάν (NULL != pFile) { fscanf (pFile, "%s", str); printf("Η πρώτη λέξη στο αρχείο είναι %s\n", str); fclose (pFile); }

Βήμα 7

Επαναλάβετε το βήμα 5 χρησιμοποιώντας το "fgets()," το οποίο λειτουργεί όπως το "gets()":

ΑΡΧΕΙΟ* pFile; pFile = fopen("myFile.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Η πρώτη λέξη στο αρχείο είναι %s\n", str); fclose (pFile); }

Πράγματα που θα χρειαστείτε

  • C/C++ IDE ή C compiler

  • Βιβλίο για το C, όπως "The C Programming Language" του Brian W. Kernighan

Υπόδειξη

Για να μάθετε περισσότερα σχετικά με τις λειτουργίες που αναφέρονται, επισκεφτείτε τον ιστότοπο του C Plus Plus.

Προειδοποίηση

Μην προσπαθήσετε να μεταγλωττίσετε αυτόν τον κώδικα. Προορίζεται μόνο για την επίδειξη των λειτουργιών. Δεν είναι ένα συνεκτικό πρόγραμμα και θα δώσει σφάλματα κατά τη μεταγλώττιση.