Tartalomjegyzék

< CPP

Cpp String

Konstruktor

Paraméter nélkül

#include <iostream>
 
using namespace std;
int main()
{
 
    string str;
    str = "szilva";
 
    cout << str << endl;
 
    return 0;
 
}

Konstruktor használata

#include <iostream>
 
using namespace std;
int main()
{
 
    string str("szilva");
 
    cout << str << endl;
 
    return 0;
 
}

Másolat

#include <iostream>
 
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 <iostream>
 
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 <iostream>
 
using namespace std;
int main()
{
 
    string str1 = "szilva";
 
    string str2(str1, 2, 3);
 
    cout << str2 << endl;
 
    return 0;
 
}

Egy karakter többször

#include <iostream>
 
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 <iostream>
 
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 <iostream>
 
using namespace std;
int main()
{
 
    string str = "szilva";
 
    cout << str << endl;
 
    return 0;
 
}

getline

Végjel

#include <iostream>
using namespace std;
int main()
{
    string str;
    getline(cin, str, '$');
    cout << str << endl;
    return 0;
}

Fájl olvasása

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <iterator>
 
using namespace std;
int main()
{
    string str;
 
    ifstream f("adat.txt");
    vector<string> 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<string>(cout, "\n"));
    cout << endl;
    return 0;
}

Operátorok

<<, >> operátorok

#include <iostream>
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 <iostream>
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 <iostream>
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 <iostream>
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 <iostream>
using namespace std;
int main()
{
    string str = "szilva";
 
    cout << str.at(2) << endl;
 
    return 0;
}

Linkek