[[:oktatas:programozás:cpp|< CPP]] ====== Cpp String ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2011 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Konstruktor ===== ==== Paraméter nélkül ==== #include using namespace std; int main() { string str; str = "szilva"; cout << str << endl; return 0; } ==== Konstruktor használata ==== #include using namespace std; int main() { string str("szilva"); cout << str << endl; return 0; } ==== Másolat ==== #include using namespace std; int main() { string str1 = "szilva"; string str2(str1); cout << str2 << endl; return 0; } ==== Adott pozíciótól ==== A következő példában az str1 változóból csak a 3-dik (2-es index) karaktertől másolunk. #include using namespace std; int main() { string str1 = "szilva"; string str2(str1, 2); cout << str2 << endl; return 0; } Képernyőre így a következő szó kerül: ilva ==== Adott karakterszám ==== #include using namespace std; int main() { string str1 = "szilva"; string str2(str1, 2, 3); cout << str2 << endl; return 0; } ==== Egy karakter többször ==== #include using namespace std; int main() { string str(10, '*'); cout << str << endl; return 0; } 10 darab csillag karaktert tartalmaz az str változó. ==== Iterátorok használata ==== #include using namespace std; int main() { string str1 = "szilva"; string str2(str1.begin(), str1.end() - 2); cout << str2 << endl; return 0; } A program a következőt írja a képernyőre: szil ==== Értékadás ==== #include using namespace std; int main() { string str = "szilva"; cout << str << endl; return 0; } ===== getline ===== ==== Végjel ==== #include using namespace std; int main() { string str; getline(cin, str, '$'); cout << str << endl; return 0; } ==== Fájl olvasása ==== #include #include #include #include #include using namespace std; int main() { string str; ifstream f("adat.txt"); vector v; cout << "Adatok olvasása fájlból" << endl; while(!f.eof()) { getline(f, str); v.push_back(str); } copy(v.begin(), v.end(), ostream_iterator(cout, "\n")); cout << endl; return 0; } ===== Operátorok ===== ==== <<, >> operátorok ==== #include using namespace std; int main() { string str; cout << "Szöveg: "; cin >> str; cout << "Ezt írtad: " << str << endl; cout << "Írj be szöveget " << "(Ctrl + D a kilépéshez)"; while(cin >> str) { cout << endl; cout << "Valami" << endl; cout << "Írj be szöveget " << "(Ctrl + D a kilépéshez) "; } return 0; } ==== =, +=, + operátorok ==== #include using namespace std; int main() { string str("szilva"); string s = str + "barack"; cout << s << endl; str += ","; cout << str << endl; char ch = '!'; s += ch; cout << s << endl; return 0; } ===== Hozzáfűzés ===== #include using namespace std; int main() { string str1 = ""; string str2 = "szilva"; char *str3 =(char*) "abcd"; str1.append(3, '*'); //három csillagot fűzünk fel str1.append(str2, 0, 3); //0-diktól 3-at str1.append(str3, 2); string::iterator it1 = str2.begin()+2; string::iterator it2 = str2.end(); str1.append(it1, it2); cout << str1 << endl; return 0; } ===== Csere ===== Az assign metódus lecseréli az aktuális tartalmat a paraméterben megadottra. #include using namespace std; int main() { string str1 = "barack"; string str2 = "szilvaalma"; str1.assign(str2, 2, 3); cout << str1 << endl; return 0; } ===== Karakter visszanyerése ===== #include using namespace std; int main() { string str = "szilva"; cout << str.at(2) << endl; return 0; } ===== Linkek ===== * http://anaturb.net/C/string_exapm.htm