Girilen isimde her harften kaç tane bulunduğunu hesaplayan bir programın kodları hakkında

Herkese merhaba arkadaşlar
Girilen isimde her harften kaç tane bulunduğunu hesaplayan bir programın kodlarını okurken bazı yerlerini tam anlamadım
Mesela burada isim yerine diyelim ki cem dedik sonrasında char[] letters = {‘c’,‘e’,‘m’}; gibi bir ifadeye dönüşür sonrasında byte[] counter = new byte[3] ; bu şekilde oluşur fakat kodda if koşulunda counter[i]++; gibi bir ifade var bu ne demek benim counter dizimin içi 3 olmuştu onu mu 1 arrtıcak ya da diziyi nasıl bir arrtıyor bir de şu en alttaki dolar sembolü($) ne işe yarıyor nette bulamadım lütfen basit sade bir şekilde açıklarsanız çok sevinirim

           Console.Write("Lütfen bir isim giriniz: ");
            string name = Console.ReadLine();

            char[] letters = name.ToCharArray();
            //Bu metot sayesinde isim içerisindeki harfleri bir char dizisi olarak alabileceğiz.
            byte[] counter = new byte[name.Length];

            for (int i = 0; i < letters.Length; i++)
            {
                for (int j = 0; j < name.Length; j++)
                {
                    if (letters[i] == name[j])
                    {
                        counter[i]++;
                    }
                }
            }

            Console.WriteLine($"{name} isminde ");

            for (int i = 0; i < name.Length; i++)
            {
                Console.WriteLine($"{counter[i]} adet {letters[i]} harfi bulunmaktadır.");
            }
            Console.ReadLine();

Merhaba.
Sanırım $ işareti python’daki f-string gibi çalışıyor.

1 Beğeni

Merhabalar,

Kodda temel hatalar var: Import’lar eksik, sinif ve fonksiyon yok. O yuzden calistirip ustunden gecemeyecegiz.

Turkce ifadelerde de hatalar var, anlayabildigim kadariyla cevapliyorum.

if’in kosulunda degil de kosul saglandiginda calisacak blokta var. counter array’inin i. elemaninin degerini 1 arttiriyor. Yani counter[i] = counter[i] + 1.

Dizinin ici 3 degil, 0, 0, 0, veya (byte[]) { 0, 0, 0 }. Uzunlugu 3, ve bu uzunlugu arttirmanin bir yolu yok.

Basit ve sade: Icindeki kodun ciktisini string’e koyuyor.

Dostum kodda bir hata yok ben direkt main metodunun içerisindeki kodları yazdım şu dolar sembolü yani string interpolation olan kısmı çok iyi anladım fakat counter[i]++ ifadesini hala anlamadım yani ben counter dizimin içerisi 3 olacak derken şöyle olacak demek istemiştim byte[] counter = new byte[3]
bu ifade counter dizisinin içinde 3 tane eleman var demek değilmi bunu nasıl bir arttırıyor bunu anlayamadım

Elindeki kodu bilemiyoruz, buraya yazdigindan bahsedebiliyoruz sadece.


Diger kisma gelince varsayiminin yanlis oldugunu soyledim ve sorunu cevapladim. Yazdigimi tekrar bi oku istersen.

Hatta genel olarak yazilanlara daha cok vakit ayirirsan isinin daha kolay olacagini dusunuyorum. Kendi yazdiklarindan baslayarak.

Öncelikle yardım ettiğin için teşekkürler fakat önce kendi yazdıklarını incele gibisinden bir şey yazmışsın neden öyle ters bir şey söyledin anlamadım gayet düzgün bir şekilde yardım istemişim yazdığım kodda hata yok derken sana kötü bir şey demedim

Ikimizin de yazdiklarinda ters bir sey yok.

Yazmaya ve okumaya daha cok zaman harcayan insanlarin daha basarili programci olduklarini goruyorum sadece.

2 Beğeni