Ana içeriğe atla

C++ ile string işlemleri

 

#include <iostream>

#include <string> //Başka ideler yada işletim sisteminde hata almamak için dahil edilmeli

using namespace std;


int main() 

//C++ ile string işlemleri

// length() ile uzunluk karakter sayısını bulma 

// eğer string içinde boşluk var ise onuda karakter olarak hesaplar

string meyve = "Elma";

cout << "Uzunluk " << meyve.length() << endl;

cout << "ilk harf : " << meyve.at(0) << endl; //String'in ilk harfini bulma


meyve.append(" suyu");

cout << "Append ile : " << meyve << endl;//meyve stringinin içine append yardımı ile " suyu" ifadesini eklemiş olduk

//string birleştirme

string yeni = meyve + " guzeldir";

cout << "Birlestirme : " << yeni << endl;


//string den karakter alma,

//elma suyu güzeldir 'in içinde find yardımı ile aradı npos ile kaçıncı pozisyonda (10) da olduğunu verdi

cout << "Parca (substr) : " << yeni.substr(0, 4) << endl;//substr ile 0 dan 4 'e kadar olan karakterleri almış olduk

cout << "Parca2 (substr) : " << yeni.substr(5, 4) << endl;//ilk rakam başlangıç indeksi, ikinci rakam ise alınacak karakter sayısıdır.


int pos = yeni.find("guzel");//aranan kelimenin değişkenin içinde bulma

if (pos != string::npos) //npos ile aranan kelimenin kaçıncı pozisyonda olduğunu bulma npos kullanılmaz ise anlamsız rakamlar ortaya çıkar

{

cout << "aranan metin bulundu. Pozisyon : " << pos << endl;

}

else

{

cout << "aranan kelime bulunamadı!!!" << endl;

}

//erase karakter silme erase(5, 5) beşinci karakterden itibaren beş karakter sil demiş olduk

yeni.erase(5, 5);

cout << "erase ile silme sonrasi : " << yeni << endl;//boşluk da bir karakterdir ve onu da siler.


//insert ile ekleme işlemi

//elma güzeldir

yeni.insert(4, " TAZE");

cout << "insert sonrasi : " << yeni << endl; //Çıktısı Elma TAZE guzeldir şeklinde oldu. 4'üncü indeks den sonrasına ekledi


//Elma TAZE guzeldir

//replace methodu ile değiştirme

yeni.replace(0, 4, "Portakal");

cout <<"Replace ile elmayi degistir Portakal yap : " << yeni << endl; //çıktısı : Portakal TAZE guzeldir

return 0;

}

String mi, Char Dizisi mi? 

C++'da eski tip char isim[] = "Ahmet"; yerine 

string isim = "Ahmet"; 

kullanmak her zaman daha avantajlıdır. Çünkü string sınıfı, bugün kullandığın append, find, replace gibi onlarca hazır fonksiyonu bize "bedava" sunar. Bellek yönetimini de (ne kadar yer kaplayacağını) kendisi halleder.

Bu blogdaki popüler yayınlar

C++ float double string Aritmatik işlemler

  #include <iostream> using namespace std; //void fonk()  //{ // cout << "Merhaba\n"; //} // //int main()  //{ // cout << "Merhaba C++\n"; // // fonk(); // return 0; //} /* int main()  { //Değişkenler rakam ile başlayamaz //Değişken isimlerinde türkçe karakter olmaz //değişken isimleride boşluk olmaz //Değişken isimlerinde nokta vb karakter olmaz //******************************************** //int ram'da 4 byte yer kaplıyor -2147483648 to 2147483647 //char 1 byte  (ASCII tablosu) //bool 1 byte //float 4 byte //double 8 byte //CPU ramdan byte byte okur //Void herhangi bir return etmiyecekse kendi aldığı değerleri kullanır.Bir değer döndürmez. string isim; isim = "Kaan"; int yas; yas = 22; cout << "Bir zamanlar " << isim << " isminde bir genc varmis." << endl << isim << " " << yas << " yasindaymis." ...

C++ try catch, Call by Value, Call by Referans Kullanımı

  #include <iostream> using namespace std; //int main()  //{ // int bolunen, bolen; // cout << "Lutfen bolunen sayiyi giriniz : "; // cin >> bolunen; // cout << "Lutfen bolen sayiyi giriniz : "; // cin >> bolen; // // int sonuc; // // try{ // if (bolen == 0) // throw 99;//Burada throw için herhangi bir tam sayı girilir.örn: negatif sayılar gibi durumlar için çoğaltılabilir // sonuc = bolunen / bolen; // // cout << "Sonuc : " << sonuc; // } // catch(int hataKodu){ // cout << "Bolen sayi sifir olmamali !!" << endl; // } // // cout << endl; // return 0; //} /* try catch Kullanımı :  * try catch kullanıcının beklenmedik bir girdi vermesi sonucu  * programın çökmesini engllemek amacı ile kullanılır * Ayrıca veri tabanı bağlantılarında bağlantının olmaması ve  * işlem sonrasında veri tabanı bağlantısını kapatma veya programın başlangıcında bağlantıyı a...

Pointer ve & (ampersant) Konusunu Kavrayalım

  #include <iostream> #include <string> using namespace std; /* int main()  {  int x = 7; cout << "x 'in degeri : " << x << endl; cout << "x 'in RAM deki adresi : " << &x << endl;  // & ile ramdeki ilk adres değeri  000000D3ED4FFCF4 ni bulduk  // int 4 byte oldugundan bu adresde dahil 4 byte 'lik yerin tamamını hesaplar // ama bize  4 byte lik adresin ilk değerini verir. return 0;  } */ /* int main() { // Pointer  ve & (ampersant) Konusunu Kavrayalım int x = 7; int *p = &x; // pointer ile x 'in adres değerini bulma cout << "x 'in degeri : " << x << endl; cout << "x 'in & ile RAM deki adresi : " << &x << endl; //pointer ile gösterimi cout <<"pointer p ile adres degeri : "<< p << endl; cout << "*p ile ( *p = &x) x in pointer degeri : " <...