[[: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