
c++ ile girilen bir karakter dizisinin içinden herhangi bir elemanı silmeyi göreceğiz. uygulama kimilerine basit gelsede ilk öğrenenler biraz bu konuda sıkıntı çekebiliyorlar bu yüzden blogumda paylaşma gereği duydum. kodlarımıza geçelim
öncelikle karakterSil.cpp adında dosyamızı açalım ve kodlamaya başlayalım kod açıklamalarını kod yazarken kodun yanında gösterdim ayrıca açıklama yapmayacağım anlamayan arkadaşlar yorum atabilirler.
Koduumuz :
/*
Vehbi Akdoğan
iletişim : mf.leqelyy@gmail.com
site: http://vehbiakdogan.blogspot.com
soru : Girlilen bir karakter dizinisnden istenilen elemanı silip kalan diziyi aralarda bir boşluk bırakarak yazan programımız
Dizimizin boyutu statik olup 20 karakter olacak.
silinen elemanın indisi gösterilecek.
eleman yoksa hata mesajı verilecek.
birden fazla varsa hepsinin indisi gösterilecek.
*/
#include <iostream>
using namespace std;
void karakterSil(char [],char); // karakter silme fonksiyonumuz diziyi ve silinecek karakteri paramtere olarak alıyor
int main(){
setlocale(LC_ALL,"TURKISH"); // türkçe karakter sorunu olmaması için
char dizi[20], silinecek; // dizimiz ve silinecek elemanın veri tipini tanımladık
cout << "Lütfen max 20 karakterlik veri giriniz: ";
cin >> dizi;
cout << "Silinecek Elemanı Giriniz: ";
cin >> silinecek;
/* vdizi ve silinecek elemanı aldık şimdi silme işlemi yapalım */
karakterSil(dizi, silinecek); // fonksiyonumuzu çağırdık ve şimdi dizimizi tekrar aralrında boşluk bırakarak yazalım
for (int i = 0; dizi[i] != '\0'; i++)
cout << dizi[i] << " ";
cout << endl<<"Programımız Burada sona ermiştir \n vehbiakdogan Saygılarımla ..."<<endl;
return 0;
}
void karakterSil(char d[20], char s){
int silinenler[20],sayac=0; // en fazla 20 tane silineceği için boyutu 20 yaptık
for (int i = 0; i < 20; i++){
if (d[i] == s){
d[i]=' '; // eğer silinecek eleman dizinin elemanına eşit ise sildik
silinenler[sayac] = i; // silinenler dizisine indisi ekledik
sayac++; // sayacımızı artırdık
}
}
/* şimdi neler sildik nerden sildik gösterelim */
if (sayac == 0){
cout << "Eleman Dizide Yok " << endl;
}
else{
cout << "silinen eleman sayısı : " << sayac<<endl<<"Silinenlerin indisi: ";
for (int i = 0; i < sayac; i++)
cout << silinenler[i] << " ";
// karakter silme işlemi bitti
cout << "c++ da dizi indislerinin 0 dan başladığını unutmayalım !! :) " << endl;
}
}
Programın Çalışan Bir Çıktısı
Program Dosyasını Buradan İndirebilirsiniz.
Evet arkadaşlar kodlarımız bu kadardır anlamayan arkadaşlar yorum atabilirler.
C++, C Plus Plus, Programlama
YanıtlaSil