C++ стрингови – решени примери

Неколико решених примера, који илуструју рад са стринговима у C++-у. Напомињем: могуће је користити C стрингове (низове знакова) и њима припадајуће функције, али у духу објектног програмирања (а C++ јесте објектно оријентисан језик) препоручује се употреба C++ стрингове (објекте класе string). Такође, могуће и комбиновање функција за C стрингове (нарочито функција за рад са појединачним знаковима) и метода класе string.

1. учитавање стринга помоћу функције getline:

#include <iostream>
#include<string>
using namespace std;
int main () 
{
     string str;
     cout <<"Unesite string: ";
     getline (cin,str);
     cout <<"Uneli ste: "<< str << endl;
     return 0;
}

2. превођење стринга у велика слова:

#include <iostream>
#include <string>
using namespace std;
int main () 
{
     string str1,str2;
     str1="ovo je test!";
     str2=str1;cout<<"ovo je izvorni string: "<<str1<<endl;//kopiranje stringova moze se obaviti i preklopljenim operatorom dodele vrednosti!
     for (int i=0; str1 [i]; i++) str2 [i] = toupper (str1[i]);
     cout << str2 << endl;
     return 0;
}

3. телефонски именик – примена низова стрингова

#include<iostream>
#include<string>
using namespace std;
int main()
{
     string str,brojevi[10]={ "Pera","065-2341123",     "Deki","063-5654667",     "Sandra","062-32563434",     "Laza","061-3453453"}; // inicijalizacija niza stringova koji predstavljaju telefonski imenik: na parnim indeksima (0,2,4...) nalaze se imena, na neparnim indeksima (1,3,5...) nalaze se odgovarajuci brojevi telefona
     int i;
     cout<<"unesite ime:";
     cin>>str;
     for(i=0;i<10;i+=2)
     {
          if(!str.compare(brojevi[i]))
          {
               cout<<"broj je:"<<brojevi[i+1]<<endl;
               break;
          }
     }
     if(i==10)cout<<"broj nije pronadjen"<<endl;
     return 0;
}

4. Проверити да ли је дати стринг палиндром (чита се исто са лева на десно и са десна на лево)

#include <iostream>
#include <string>
using namespace std;
int main()
{
     string s,t;
     int i;
     cin >>s;
     t=""; // postavljanje pocetne vrednosti stringa na "0", odnosno na prazan string
     for (i=s.length()-1;i>=0;i--) //s.length() vraca duzinu stringa s, samim tim pocetna vrednost brojaca i je duzina stringa -1 (zato sto indeksi znakova u stringu pocinju od 0)
     {
          t=t+s[i];// pravimo string koji se dobija citanjem stringa s unazad
     }
     if (s==t) cout <<"Da!";
     else cout <<"Ne!";
     return 0;
}

5. Написати програм који издваја име курса COIT11133 из следеће URL адресе: http://infocom/Courses/2003/T2/COIT11133/

#include <iostream>
#include <string>
using namespace std;
int main()
{
string url = "http://infocom/Courses/2003/T2/COIT11133/";
int urlen = url.length();//duzina stringa
string course1 = url.substr(urlen-10,9);//izdvajamo deo stringa
cout << course1;
return 0;
}

6. Написати програм који приказује иницијале особе чије се име и презиме налазе у два различита стринга.

<#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string fname,sname;
cout <<" Unesite ime =>";
cin>> fname;
cout <<" Unesite prezime =>";
cin>> sname;
string initfname = fname.substr(0,1);// izdvajanje prvog slova imena
string initsname = sname.substr(0,1);// izdvajanje prvog slova prezimena
cout <<" Inicijali " <<fname<< " "<<sname<< " su " <<initfname<<initsname<<endl;
return 0;
}

7. Написати if наредбе које проверавају да ли ове две емаил адресе у себи садрже vts.su.ac.rs, тј. да ли имају исто име домена?
j.sin02@vts.su.ac.rs
b.sam@vts.su.ac.rs
Помоћ : декларисати адресе као два стринга, пронаћи њихову дужину и поредити подстрингове који следе после @.

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
     string add1 ="j.sin02@vts.su.ac.rs";
     string dom ="vts.su.ac.rs";
     string add2 ="b.sam@vts.su.ac.rs";
     int lenAdd1 = add1.length();
     int lenAdd2 = add2.length();
     if((add1.substr(lenAdd1-12,12)== dom)&&(add1.substr(lenAdd1-12,12)== dom))
     cout <<"Obe adrese imaju vts.su.ac.rs za domen";
     else
     cout << " Adrese nemaju isto ime domena.";
     return 0;
}
Advertisements

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

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

WordPress.com лого

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

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

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

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

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

Google+ photo

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

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