Page 18

string

Η δήλωση string χρησιμοποιείται για να περιγράψουμε μια σειρά χαρακτήρων που τελειώνουν σε null. Παραδείγματα char Str1[15]; char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; char Str4[ ] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino";

Δυνατότητες για τη δήλωση συμβολοσειρών (strings)

Δεσμεύουν μια σειρά από χαρακτήρες χωρίς αρχικοποίηση όπως η Str1.

Δεσμεύουν μια σειρά από χαρακτήρες (με ένα επιπλέον χαρακτήρα) και ο μεταγλωττιστής θα προσθέσει ένα χαρακτήρα null στο τέλος που απαιτείται για τον τερματισμό της αλυσίδας των χαρακτήρων, όπως η Str2. Ρητή προσθήκη του χαρακτήρα null στην Str3.

Γίνεται προετοιμασία με μια σταθερή συμβολοσειρά σε εισαγωγικά. Ο μεταγλωττιστής θα υπολογίσει το μέγεθος του πίνακα για να χωρέσει η σταθερή συμβολοσειρά και ένας επιπλέον τερματικός χαρακτήρας null στο Str4.

Γίνεται προετοιμασία του πίνακα που περιέχει σαφές μέγεθος και σταθερή συμβολοσειρά στο Str5.

Γίνεται προετοιμασία της συστοιχίας χαρακτήρων, αφήνοντας επιπλέον χώρο για μεγαλύτερη συμβολοσειρά στο Str6. Τερματισμός Null

Γενικά, οι συμβολοσειρές τελειώνουν με έναν χαρακτήρα null (με κωδικό ASCII το 0). Αυτό επιτρέπει στις συναρτήσεις που χρησιμοποιούν συμβολοσειρές να πουν πού αυτό τελειώνει. Αν δεν υπάρχει τέτοιος χαρακτήρας θα συνεχίσουν να διαβάζουν σαν χαρακτήρες το συνεχόμενο τμήμα μνήμης που ακολουθεί και ας μην είναι μέρος της συμβολοσειράς.

Αυτό σημαίνει ότι η συμβολοσειρά χρειάζεται χώρο για ένα επιπλέον χαρακτήρα απ’ ότι το κείμενο που περιέχει. Για αυτό το Str2 και Str5 χρειάζεται να είναι 8 χαρακτήρων, ακόμα και αν η λέξη “Arduino” έχει 7, η τελευταία θέση αυτόματα γεμίζει με τον χαρακτήρα null. Το μήκος του Str4 θα υπολογιστεί αυτόματα στους 8 χαρακτήρες, ένας επιπλέον για τον null. Στο Str3, συμπεριλάβαμε ένα κενό χαρακτήρα μόνοι μας (γράφεται \0).

Να σημειώσουμε ότι είναι πιθανό να έχουμε μια συμβολοσειρά χωρίς των τελικό null χαρακτήρα (π.χ. αν έχουμε καθορισμένο το μήκος του Str2 ως 7 αντί για 8). Αυτό θα δημιουργήσει προβλήματα στις περισσότερες λειτουργίες που χρησιμοποιούν strings, γι’ αυτό δεν πρέπει να γίνει σκόπιμα.

24

Σημειώσεις arduino kales  
Σημειώσεις arduino kales  
Advertisement