Σειρές χαρακτήρα
Μια σταθερά σειράς, όπως
"Είμαι μια σειρά"
είναι μια σειρά χαρακτήρων. Αντιπροσωπεύεται εσωτερικά στο γ από τους χαρακτήρες ASCII στη σειρά, δηλ., "το ι", το κενό, "το α", "m"... ή την ανωτέρω σειρά, και ολοκληρώνεται από τον ειδικό κενό χαρακτήρα "\0" έτσι τα προγράμματα μπορούν να βρούν το τέλος της σειράς.
Οι σταθερές σειράς χρησιμοποιούνται συχνά στην παραγωγή της παραγωγής του κώδικα καταληπτό χρησιμοποιώντας printf:
printf("Hello, world\n");
printf("The value of a is: %f\n", a);
Οι σταθερές σειράς μπορούν να συνδεθούν με τις μεταβλητές. Το γ παρέχει τη μεταβλητή τύπων χαρακτήρα, η οποία μπορεί να περιέχει έναν χαρακτήρα (1 ψηφιολέξη) σε έναν χρόνο. Μια σειρά χαρακτήρα αποθηκεύεται σε μια σειρά τύπου χαρακτήρα, ένας χαρακτήρας ASCII ανά θέση.
Μην ξεχάστε ποτέ ότι, δεδομένου ότι οι σειρές ολοκληρώνονται συμβατικά από τον κενό χαρακτήρα "\0", απαιτούμε μια πρόσθετη θέση αποθήκευσης στη σειρά.
Το γ δεν παρέχει οποιοδήποτε χειριστή που χειρίζεται τις ολόκληρες σειρές αμέσως. Οι σειρές χειρίζονται είτε μέσω των δεικτών είτε μέσω των ειδικών ρουτινών διαθέσιμων από την τυποποιημένη βιβλιοθήκη σειράς string.h.
Η χρησιμοποίηση των δεικτών χαρακτήρα είναι σχετικά εύκολη δεδομένου ότι το όνομα μιας σειράς είναι ακριβώς ένας δείκτης στο πρώτο στοιχείο του. Εξετάστε το πρόγραμμα που δίνεται έπειτα:
#include<stdio.h>
void main()
{
char text_1[100], text_2[100], text_3[100];
char *ta, *tb;
int i;
/* καθορισμένο μήνυμα για να είναι ένας arrray */
/* από τους χαρακτήρες το μονογράψτε */
/* στη σταθερή σειρά "..." */
/* αφήστε το μεταγλωττιστή να αποφασίσει σχετικά με */
/* το μέγεθός του με τη χρησιμοποίηση [] */
char message[] = "Hello, I am a string; what are
you?";
printf("Original message: %s\n", message);
/* αντιγράψτε το μήνυμα text_1 */
i=0;
while ( (text_1[i] = message[i]) != '\0' )
i++;
printf("Text_1: %s\n", text_1);
/* ρητή αριθμητική δεικτών χρήσης */
ta=message;
tb=text_2;
while ( ( *tb++ = *ta++ ) != '\0' )
;
printf("Text_2: %s\n", text_2);
}
Η παραγωγή του προγράμματος θα είναι η ακόλουθη:
Original message: Hello, I am a string; what are you?
Text_1: Hello, I am a string; what are you?
Text_2: Hello, I am a string; what are you? |
Η τυποποιημένη βιβλιοθήκη "σειράσ" περιέχει πολλές χρήσιμες λειτουργίες για να χειριστεί τις σειρές, τις οποίες θα μάθουμε στο τμήμα σειράς αργότερα.
|