duyuruElektroArge.com'a Hoşgeldiniz. Üye Olmak İçin Tıklayın. duyuru





houseForum ana sayfa   iletişimİletişim   bilgiSSS  
kırmızı yeşil mavi
ekleKayıt  anahtarGiriş
evForum ana sayfa goKod Paylaşımı & Tamamlanmış Projeler goC Dili Kod Paylaşımı ve Projeler
 

  • Reklam

Cümlede Hangi Karakterden Kaç Tane Var

C Dili ile Yazılmış Kodlar ve Tamamlanmış Projeler

Cümlede Hangi Karakterden Kaç Tane Var

Mesajgönderen okanbilke » 02 Mar 2014 03:52

Bu program, verilen cümle içerisinde hangi karakterden kaç tane bulunduğunu ekrana yazdıracak.
//tekrar_eden_karakter_sayisini_bul.c - 02.03.2014 - Okan BİLKE -www.elektroarge.com

#include <stdio.h>
#include <ctype.h>

void tabloyu_ciz(char *);

int harfler[26];

void tabloyu_ciz(char *chPt)
{
int uzunluk = strlen(chPt);
int a = 0;
char aktif_harf; // cumlede o anda okunan harf

/* hangi harften kac tane oldugunu dizilere yaz
dizi indeksi hangi harf oldugunu belirtir,
indeks0: a, indeks1: b, ... indeks24:c*/

for(a = 0 ; a < uzunluk ; a++)
{
aktif_harf = tolower(*(chPt + a));
/* harfin ascii kodundan 97 cikartarak, o harfin
dizideki indeksini buluyoruz.
yani harfler[0] >> a ve harfler[1] >> b gibi*/
harfler[aktif_harf - 97]++;
}

// şimdi dizi içindeki değerleri ekrana yazdır.
// sadece cümlede geçen harfleri (değeri sıfır olmayan) yaz
printf("harf\ttekrar\n");
printf("----\t-----\n\n");
for (a = 0 ; a < 26 ; a++)
{
if (harfler[a] != 0)
{
printf("%c\t", a + 97);
printf("%d\n", harfler[a]);
}
}
}

int main()
{
char chPt[100];

puts("Bir cumle giriniz (max 100 karakter):");
// cumleyi diziye yerlestir:
gets(chPt);

// yazdır:
tabloyu_ciz(chPt);

return 0;
}
//bu dosya elektroarge.com'dan indirilmiştir.

Ekran çıktısı:
Bir cumle giriniz (max 100 karakter):
elektroarge elektronik arastirma gelistirme platformu
harf tekrar
---- -----

a 5
e 7
f 1
g 2
i 4
k 3
l 4
m 3
n 1
o 3
p 1
r 7
s 2
t 5
u 1

Cümlede hangi harften kaç adet bulunduğunu harfler[] isimli dizi içerisinde tutuyoruz. Bu dizinin ilk kutusunda(harfler[0]) 'a' karakterinden kaç tane olduğu bilgisi, ikinci kutusunda 'b' karakterinden kaç tane olduğu bilgisi ve aynı şekilde son kutusunda da (harfler[26]) 'z' karakterinin kaç tane olduğu bilgisi yer alıyor.
Programda önce cümlenin başından sonuna kadar bir döngü ile ilerliyoruz(20. satır). İlerleme sırasında karşılaştığımız her harfi, harfler[] dizimize kaydediyoruz. Bunu yaparken karşılaştığımız karakterin ASCII kodundan 97 çıkarıyoruz ve elde ettiğimiz sayı, harfler[] dizisinin indeksi oluyor. Örneğin 'c' karakteri ile karşılaştıysak, bu karakterin ASCII kodundan(99) 97 sayısını çıkartarak(26. satır) 2 değerini elde ediyoruz. Bu değeri de dizi indeksi olarak kullanarak harfler[2] kutusunun içindeki sayıyı 1 arttırıyoruz. Böylece harfler[2] kutusu içinde 1 değeri yer almış oluyor. Bu da bir adet 'c' karakterinin diziye kaydedildiğini gösteriyor. Diğer karakterler için de aynı şey geçerlidir. Örneğin 'a' karakterinin ASCII kodu 97 olduğu için bu sayıdan 97'yi çıkardığımızda elde ettiğimiz sıfır değeri, 'a' karakterinin dizide tutulduğu kutuyu gösterir(harfler[0]). 'z' karakteri ile karşılaşsaydık, bu karakterin ASCII kodu olan 122'den 97'yi çıkararak 25 sayısını elde edecektik. Daha sonra da harfler[25]'in değerini 1 artırarak 'z' harfini diziye kaydetmiş olacaktık.
okanbilke@gmail.com
Kullanıcı avatarı
okanbilke
Site Kurucusu
Site Kurucusu
 
Mesajlar: 721
Beğendiklerim: 0 mesaj
Beğenilenlerim: 0 mesaj
Kayıt: 15 Mar 2013 13:09
Konum: Ankara

Reklam

Dön C Dili Kod Paylaşımı ve Projeler

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 0 misafir


  • Reklam