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ümledeki Kelimelerin Ters Sırada Yazdırılması

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

Cümledeki Kelimelerin Ters Sırada Yazdırılması

Mesajgönderen okanbilke » 02 Mar 2014 03:40

Bu programda cümledeki kelimeleri tersten yazdırıyoruz.
//kelimeleri_ters_sirada_yazdir.c - 02.03.2014 - Okan BİLKE -www.elektroarge.com

#include <stdio.h>
void kelimeleri_ters_sirada_yazdir(char *);

void kelimeleri_ters_sirada_yazdir(char *chPt)
{
int uzunluk = strlen(chPt);
int basla = uzunluk -1, bitir = uzunluk - 1;
int j = 0, k = 0;

for(j = uzunluk ; j >= 0 ; j--)
{
// bosluk karakterine bak:
if(*(chPt + j) == ' ' || j == 0)
{
// eger yazilan cumlenin ilk kelimesiyse ( j == 0),
// basla = j, değilse basla = j + 1;
basla =(j != 0) ? j + 1 : j;

// boşluktan, kelime sonuna kadar kelimeyi yazdır
for (k = basla ; k <= bitir ; k++)
{
putchar(*(chPt + k));
}

bitir = basla - 2;

// boşlukları almamıştık bir boşluk yerleştir:
if (j != 0) putchar(' ');
}
}
}

int main()
{
char chPt[100];

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

// yazdır:
kelimeleri_ters_sirada_yazdir(chPt);

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

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

Çalışma Mantığı:
Program şu mantıkla çalışıyor: Önce basla ve bitir isminde int türünde iki değişken tanımlıyoruz. Programın başında, bu iki değişkene de cümle uzunluğunun bir eksiğini atıyoruz(9. satır). Bu durumda, eğer cümlede örneğin 25 karakter varsa basla ve bitir değişkenlerimiz 24 değerini gösteriyor oluyorlar.
Daha sonra cümleyi sondan başlayarak başa doğru tarıyoruz ve boşluk karakterlerini arıyoruz. Bir boşluk karakteri bulduğumuz anda, basla değişkeni bu boşluk karakterinden bir sonraki karakteri(yani kelimenin ilk karakterini) bitir değişkeni de kelimenin sonunu gösteriyor(27. satırda bunu ayarlıyoruz). Böylece 22. satırdaki döngü ile basla ve bitir değişkenleri arasında kalan o kelimeyi ekrana yazdırıyoruz.
Aynı mantık cümlenin diğer kelimeleri için de geçerli oluyor. Cümlede rastladığımızi her boşluk karakterinde basla değişkeni bu boşluktan bir sonraki karakteri, bitir değişkeni ise kelimenin son karakterini gösteriyor oluyor. Biz de 22. satırdaki döngü ile bu iki değişken arasında kalan kelimeyi ekrana yazdırıyoruz.
Örneğin cümlemizin
[code2=]elektroarge elektronik arastirma gelistirme platformu[/code2]
olduğunu varsayalım. Bu durumda basla ve bitir değişkenlerimizin durumu şu şekilde olacaktır:
Resim

Diğer kelimeler için de aynı durum geçerli olacaktır. Programda boşluk karakterlerini almadığımıza ve bu karakterleri 30. satırda bizim yerleştirdiğimize dikkat ediniz.
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: Google Adsense [Bot] ve 1 misafir


  • Reklam