Операције са string објектима

Декларисање, иницијализација, унос и исписивање стринга:

string s1, s2 = "kuca"; //promenljive s1 i s2 su deklarisane kao stringovi, s tim da je s2 inicijalizovana sa pocetnom vrednoscu kuca

Уношење стринга може се обавити помоћу оператора cin:

cin >> s1; //unos stringa s1 preko cin

Ако се стринг уноси помоћу cin >> string; немогуће је унети бланко знаке тј. размаке. Другим речима, cin>>string; чита знакове и уписује их у променљиву string до првог знака размака. Након тога уписивање у string се прекида.
Да би се уносили стрингови који садрже знаке размака, користи се функција getline(cin, string), где се сваки знак додаје у стринг до притиска тастера ентер.

Исписивање се обавља помоћу оператора cout.

пример 1: уношење стринга помоћу cin

cout<<"Kako se zovete?"; string ime; cin>>ime; // ako unesemo Petar Peric
 cout<<"Dobar dan, "<<ime<<endl; // u ovom primeru ispisace se samo ime (Petar)

пример 2: уношење стринга помоћу функције getline

string ime;
 cout<<"Kako se zovete?";
 getline(cin, ime); // ako unesemo Petar Peric
 cout<<"Dobar dan, "<<ime<<endl; // u ovom primeru ispisace se sve ono sto smo uneli kao ime (Petar Peric)

Ако декларишете string

string movie = “The Lion King”;
 cout << movie;

Биће приказан цео стринг.

Спајање стрингова:
помоћу функције append(). Постоји више варијанти (описане су у табели Неке од метода класе string):
– додавање целог стринга B на крај (после) стринга A: A.append(B);
– додавање већег броја истог податка типа char: B.append(3,’Z’);
пример:

string A( "nesto" ), B( "drugo" );
 A.append(B); // sad je A="nestodrugo"
 B.append(3,'Z'); // sad je B="drugoZZZ"

применом преклопљених оператора + и +=, на следећи начин:

string A= "nesto", B= "drugo";
 A += B; // A="nestodrugo"
 B = B + "ZZZ"; // B="drugoZZZ"

Поређење стрингова:
помоћу функције compare (објашњено у табели Неке од метода класе string)
применом преклопљених оператора:
Оператори == и != пореде стрингове на једнакост, односно неједнакост. Оператори <, >,<= и >=, упоређују стрингове лексикографски, тј. по абецеди, а не по дужини стринга. Ови оператори, у суштини, пореде ASCII кодове знакова у стринговима, а ASCII кодови су тако додељени да прате распоред слова у енглеској абецеди. Тако би нпр. стринг “avokado” био “мањи” од стринга “посао”, иако је дужи од другог стринга. Слово ‘a’ се посматра као најмање, док је слово ‘z’ највеће.
пример: поређење на једнакост и неједнакост

string S= "bla", T="nesto";
 if( S == T ) cout << "isti";
 else cout << "nisu isti"; // poredjenje jednakosti

пример: лексикографско поређење

string S( "bla" ), T( "nesto" );
 if( S < T ) cout << "T je veci";
 else cout << "S je veci"; // leksikografsko poredjenje

пример: обједињено поређење

string s1 = "Programming";
 string s2 = "C++";
if(s1==s2) cout << "s1 = s2\n"; 
else if(s1>s2) cout << "s1 > s2\n";
 else  cout << "s1 < s2\n";

Наредба if(s1==s2) враћа вредност true ако су оба стринга иста.
if(s1>s2) враћа вредност true ако је s1 већи од s2.
if(s1<s2) враћа вредност true ако је s1 мањи од s2.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s