This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
cpp:strings [2017/05/02 15:51] gthanos [Μέθοδοι] |
cpp:strings [2019/05/20 08:13] gthanos [Η κλάση String] |
||
|---|---|---|---|
| Line 30: | Line 30: | ||
| ===== Η κλάση String ===== | ===== Η κλάση String ===== | ||
| - | Η // | + | Η // |
| - | + | ||
| - | Οι βασικές μέθοδοι της κλάσης string είναι οι εξής: | + | |
| Δείτε το παρακάτω παράδειγμα χρήσης της κλάσης //string//: | Δείτε το παρακάτω παράδειγμα χρήσης της κλάσης //string//: | ||
| Line 48: | Line 46: | ||
| </ | </ | ||
| - | ==== Κατασκευαστές ==== | + | Οι βασικές μέθοδοι της κλάσης string είναι οι εξής: |
| + | |||
| + | ===== Κατασκευαστές | ||
| - | | default constructor | + | | <code cpp>string();</ |
| - | | copy constructor | + | | <code cpp>string (const string& str);</ |
| - | | substring | + | | <code cpp>string (const string& str, size_t pos, size_t len = npos);</ |
| - | | from c-string | + | | <code cpp>string (const char* s);</ |
| - | | from c-string | + | | <code cpp>string (const char* s, size_t n);</ |
| - | | fill with c | string (size_t n, char c); | | + | | <code cpp>string (size_t n, char c);</ |
| Παράδειγμα χρήσης κατασκευαστών | Παράδειγμα χρήσης κατασκευαστών | ||
| Line 81: | Line 81: | ||
| </ | </ | ||
| - | ==== Μέθοδοι ==== | + | ===== Μέθοδοι |
| - | === Χωρητικότητα και μέγεθος αλφαριθμητικού === | + | ==== Χωρητικότητα και μέγεθος αλφαριθμητικού |
| - | | size_t size() const; | + | | <code cpp>size_t size() const;</ |
| - | | size_t length() const; | + | | <code cpp>size_t length() const;</ |
| - | | size_t capacity() const; | + | | <code cpp>size_t capacity() const;</ |
| - | | void resize (size_t n); και | + | | <code cpp>void resize (size_t n); και |
| - | | void resize (size_t n, char c); | Επεκτείνεται το αλφαριθμητικό ώστε να έχει νέο μέγεθος '' | + | void resize (size_t n, char c);</ |
| - | | void reserve (size_t n = 0); | Μεταβάλλει τη χωρητικότητα του αλφαριθμητικού. | | + | | <code cpp>void reserve (size_t n = 0);</ |
| - | | void clear(); | Διαγράφει τα περιεχόμενα του αλφαριθμητικού | + | | <code cpp>void clear();</ |
| - | | bool empty() const | Επιστρέφει //true// εάν το αλφαριθμητικό είναι άδειο. | | + | | <code cpp>bool empty() const;</ |
| - | === Πρόσβαση σε χαρακτήρες του αλφαριθμητικού === | + | ==== Πρόσβαση σε χαρακτήρες του αλφαριθμητικού |
| - | === Μεταβολή του αλφαριθμητικού === | + | | <code cpp> |
| + | const char& operator[] (size_t pos) const;</ | ||
| + | | <code cpp> | ||
| + | const char& at (size_t pos) const;</ | ||
| + | | <code cpp> | ||
| + | const char& back() const;</ | ||
| + | | <code cpp> | ||
| + | const char& front() const;</ | ||
| - | === Σύγκριση, αναζήτηση, εξαγωγή υπο-αλφαριθμητικών === | + | Στις όλες παραπάνω περιπτώσεις εάν το //string// είναι //const// επιστρατεύεται η //const// έκδοση της συνάρτησης. |
| + | ==== Διάτρεξη ==== | ||
| - | === Διάτρεξη === | + | | <code cpp> |
| + | const_iterator begin() const;</ | ||
| + | | <code cpp> | ||
| + | const_iterator end() const;</ | ||
| + | | <code cpp> | ||
| + | const_reverse_iterator rbegin() const;</ | ||
| + | | <code cpp> | ||
| + | const_reverse_iterator rend() const;</ | ||
| + | === Παράδειγμα χρήσης iterator === | ||
| + | <code cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main (){ | ||
| + | string str = "Hello World!"; | ||
| + | for( string:: | ||
| + | cout << *it; | ||
| + | cout << endl; | ||
| + | } | ||
| + | </ | ||
| + | === Παράδειγμα χρήσης reverse_iterator === | ||
| + | <code cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main (){ | ||
| + | string str = "Hello World!"; | ||
| + | for (string:: | ||
| + | cout << *rit; | ||
| + | cout << endl; | ||
| + | } | ||
| + | </ | ||
| + | ==== Μεταβολή του αλφαριθμητικού ==== | ||
| + | | <code cpp> | ||
| + | string& operator+= (const char* s); | ||
| + | string& operator+= (char c);</ | ||
| + | | <code cpp> | ||
| + | string& append (const char* str);</ | ||
| + | | <code cpp> | ||
| + | string& assign (const char* str)</ | ||
| + | | <code cpp> | ||
| + | string& insert (size_t pos, const char* str);</ | ||
| + | | <code cpp> | ||
| + | iterator erase (iterator p); | ||
| + | iterator erase (iterator first, iterator last);</ | ||
| + | | <code cpp> | ||
| + | string& replace (size_t pos, size_t len, const char* s); | ||
| + | string& replace (size_t pos, size_t len, const string& str, | ||
| + | | ||
| + | </ | ||
| + | | <code cpp>void swap (string& | ||
| + | <code cpp append.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | int main () { | ||
| + | string str=" | ||
| + | string str2=" "; | ||
| + | char[] str3=" | ||
| + | string str4 = " | ||
| + | |||
| + | str+=str2; | ||
| + | str.append(str3); | ||
| + | str.append(str4); | ||
| + | cout << str; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <code cpp replace.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | int main () { | ||
| + | string base=" | ||
| + | string str2=" | ||
| + | string str3=" | ||
| + | string str4=" | ||
| + | |||
| + | string str=base; | ||
| + | str.replace(9, | ||
| + | str.replace(19, | ||
| + | str.replace(8, | ||
| + | cout << str << endl; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <code cpp chicken.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | main (){ | ||
| + | string chicken (" | ||
| + | string egg (" | ||
| + | cout << " | ||
| + | cout << " and egg comes from " << egg << endl; | ||
| + | |||
| + | chicken.swap (egg); | ||
| + | cout << "After the swap, chicken comes from " << chicken; | ||
| + | cout << " and egg comes from " << egg << endl; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Σύγκριση, | ||
| + | |||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | | <code cpp> | ||
| + | size_t find (const char* str, size_t pos = 0) const; | ||
| + | size_t find (const char* str, size_t pos, size_t n) const; | ||
| + | size_t find (char c, size_t pos = 0) const; | ||
| + | </ | ||
| + | | <code cpp> | ||
| + | size_t rfind (const char* str, size_t pos = npos) const; | ||
| + | size_t rfind (const char* str, size_t pos, size_t n) const; | ||
| + | size_t rfind (char c, size_t pos = npos) const; | ||
| + | </ | ||
| + | | <code cpp> | ||
| + | | <code cpp>int compare (const string& str) const; | ||
| + | int compare (size_t pos, size_t len, const string& str) const; | ||
| + | int compare (const char* str) const; | ||
| + | int compare (size_t pos, size_t len, const char* str) const;</ | ||
| + | |||
| + | <code cpp cstring.cpp> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | using namespace std; | ||
| + | |||
| + | int main () { | ||
| + | string str (" | ||
| + | char * cstr = new char [str.length()+1]; | ||
| + | strcpy (cstr, str.c_str()); | ||
| + | |||
| + | char * p = strtok (cstr," | ||
| + | while (p!=0) { | ||
| + | cout << p << ' | ||
| + | p = strtok(NULL," | ||
| + | } | ||
| + | delete[] cstr; | ||
| + | } | ||
| + | </ | ||