Basic String Operations
- s1 = s2 -> atama
- s1 += s2 -> sonuna ekleme
- s1 + s2 -> birleştirme
- s1 == s2 -> karşılaştırma
- str1.c_str() -> C style string döndürür (const char*)
substr()
string substr (size_t pos = 0, size_t len = npos) const;Returns a newly constructed string object with its value initialized to a copy of a substring of this object. [1]
- pos -> başlangıç indeksi
- len -> başlangıçtan itibaren kaç karakter alınacağı
Constructors
string a; //
string b = "Hello"; // Hello
string c(5, '-'); // -----
string d{ 'H','i' }; // Hi
string e(b, 2); // llo
string f(b, 2, 2); // ll
cout
<< a << '\n'
<< b << '\n'
<< c << '\n'
<< d << '\n'
<< e << '\n'
<< f << '\n';Searching Strings
find & rfind
Bir string içerisinde aranması istenilen karakter veya string’in indeksini döndürür. Eğer aranan şey string içerisinde yoksa std::string::npos döndürür.
size_t find (const string& str, size_t pos = 0) const noexcept;
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_type n) const;
size_t find (char c, size_t pos = 0) const noexcept;- str/s/c: aranan karakter, string
- pos: aramaya başlanacak indeks
- n: aranacak_string.substr(0,n); (Length of sequence of characters to match.) [2]
rfind, find gibi çalışır. Tek farkı sondan başa doğru tarama yapar
string a{ "Hello world" };
cout << a.rfind("o", 8) << endl; // 7
cout << a.rfind("o", 7) << endl; // 7
cout << a.rfind("o", 6) << endl; // 4
cout << a.find("o", 3) << endl; // 4
cout << a.find("o", 4) << endl; // 4
cout << a.find("o", 5) << endl; // 7find_first/last_of & find_first/last_not_of
Verilen karakter kümesinin elemanlarını string içinde arar. not ‘lı versiyonunda ise olmama durumuna bakar.
Adding Elements
append()
string’in sonuna ekleme yapar
string& append (const string& str);
string& append (const char* s);
// substr
string& append (const string& str, size_t subpos, size_t sublen = npos);
// s array'ındaki ilk n elemanı ekle
string& append (const char* s, size_t n);
// n tane c characteri ekle
string& append (size_t n, char c);
// belli bir aralıktaki değerleri ekler
template <class InputIterator> string& append (InputIterator first, InputIterator last);
//
string& append (initializer_list<char> il);insert()
string’in verilen pozisyonuna ekleme yapar
string (1)
string& insert (size_t pos, const string& str);
substring (2)
string& insert (size_t pos, const string& str, size_t subpos, size_t sublen = npos);
c-string (3)
string& insert (size_t pos, const char* s);
buffer (4)
string& insert (size_t pos, const char* s, size_t n);
fill (5)
string& insert (size_t pos, size_t n, char c);
iterator insert (const_iterator p, size_t n, char c);
single_character (6)
iterator insert (const_iterator p, char c);
range (7)
template <class InputIterator>iterator insert (iterator p, InputIterator first, InputIterator last);
initializer_list (8)
string& insert (const_iterator p, initializer_list<char> il); DİKKAT! Ekleme yapılmadan önce tanımlanan iteratörler, ekleme yapıldıktan sonra geçersiz hale gelebilir. Çünkü containerın hacmi ve dolayısıyla bellekteki lokasyonu değişebilir.
Removing Elements
erase()
Verilen aralıktaki karakterleri siler
sequence (1)
string& erase (size_t pos = 0, size_t len = npos);
character (2)
iterator erase (const_iterator p);
range (3)
iterator erase (const_iterator first, const_iterator last);replace()
Verilen aralıktaki karakteri başka bir karakterlerine yerine başka bir karakter dizisi ekler
string (1)
string& replace (size_t pos, size_t len, const string& str);
string& replace (const_iterator i1, const_iterator i2, const string& str);
substring (2)
string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen = npos);
c-string (3)
string& replace (size_t pos, size_t len, const char* s);
string& replace (const_iterator i1, const_iterator i2, const char* s);
buffer (4)
string& replace (size_t pos, size_t len, const char* s, size_t n);
string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);
fill (5)
string& replace (size_t pos, size_t len, size_t n, char c);
string& replace (const_iterator i1, const_iterator i2, size_t n, char c);
range (6)
template <class InputIterator> string& replace (const_iterator i1, const_iterator i2, InputIterator first, InputIterator last);
initializer list (7)
string& replace (const_iterator i1, const_iterator i2, initializer_list<char> il);Converting between Strings and Numbers
to_string()
Verilen sayıyı string’ ‘e çevirir
string to_string (int val);stoi()
Verilen string’i, integer’a çevirir. stof, stod … gibi benzer fonksiyonlar bulunmaktadır. 3. paremetresi sayının tabanını, ikinci parametresi ise string içerisindeki sayıdan sonraki ilk karakterin indeksini döndürür.
std::string str_dec = "2001, A Space Odyssey";
std::string str_hex = "40c3";
std::string::size_type sz; // alias of size_t
int i_dec = std::stoi (str_dec,&sz);
int i_hex = std::stoi (str_hex,nullptr,16);
std::cout << str_dec << ": " << i_dec << " and [" << str_dec.substr(sz) << "]\n";
std::cout << str_hex << ": " << i_hex << '\n';
// 2001, A Space Odyssey: 2001 and [, A Space Odyssey]
// 40c3: 16579Miscellaneous String Operations
data()
Returns a pointer to an array that contains a null-terminated sequence of characters (i.e., a C-string) representing the current value of the string object.
swap()
a, b stringlerin yerlerini değiştirir. Normal swap operasyonuna göre daha verimlidir.


Leave a Reply