vehbiakdogan

Senior Sofware Developer

char

C++ Bir Kelimeden Verilen belirli bir kısmı silmek

Bir arkadaşımın isteği üzerine c++ ta kullanıcıdan kelime, başlangıç indisi ve silinecek karakter sayısı alınarak bir kelimenin harflerini silen konsol uygulamasını hazırladım.
Not: henüz pointer görülmediği içim pointer kullanmadan çözüm yaptım.

Tam Soru şöyle ki : Bir karakter dizininin, bir parçasını silen bir fonksiyon yazınız. Fonksiyona parametre
olarak karakter dizini, karakter dizinin silinecek kısmın başlangıç indisi ve silinecek
karakter sayısı gönderilecektir (strlen,substr gibi string fonksiyonları kullanmayınız).

Kodlarımız:

#include <iostream>
using namespace std;
void karakterSil(char [], int, int); // strlen olamdan çözüm
void karakterSilStrlen(char[], int, int); // strlen ile çözüm 
int main() {
	setlocale(LC_ALL,"TURKISH"); // türkçe karakter sorunu için 
	char kelime[100]; 
	int baslangic,
		karakterSayisi;
	// değişkenleri tanımladık
	cout << "Lütfen Bir Kelime, silinecek karakter indisi ve silinecek karakter adedini sırayla Giriniz: ";
	cin >> kelime>>baslangic>>karakterSayisi;
	// verileri aldık
	karakterSil(kelime,baslangic,karakterSayisi);
	//karakterSilStrlen(kelime, baslangic, karakterSayisi);
	cout << kelime;

	return 0;
}

// strlen olmadan çözüm 
void karakterSil(char kelime [], int baslangic, int karakterSayisi) {
	int indis = 0;
	while (kelime[indis] != '\0') {
		if (indis >= baslangic && indis < (baslangic + karakterSayisi)) {
			kelime[indis] = ' ';
		}
		indis++;
	}

}


// strlen ile çözüm 


void karakterSilStrlen(char kelime[], int baslangic, int karakterSayisi) {
	for (int indis = 0; indis < strlen(kelime); indis++){
		if (indis >= baslangic && indis < (baslangic + karakterSayisi)) {
			kelime[indis] = ' ';
		}
	}

}

strlen kullanmayın dediği için ben hem strlen kullanarak hemde strlen olmadan çözüm yaptım ikisini de kullanabilirsiniz 🙂
Çalışmayı Buradan İndirebilirsiniz.

C++