PDA

Tam Sürümünü Görmek İçin : Metin Dosyasındaki Kelime Sayısı Bulmak


koderum
01/05/2005, 21:54
Uğraştıgım programın şimdiki aşamasında herhangi bir text dosyasındaki kelime sayısını bulan döngüyü yazmak istiyorum. :tabi:

kendimce bir döngü yaptım, ama istedigim gibi çalışmadı. Yardımcı olursanız nerde yanlış yaptıgımı sevinirim. teşekkürler... :garip:

Açıklamam şöyle:
*ptrch..... karekter gösterici
ch...... ptrch'in adresinin tuttugu karekter
*in...... dosyamı gösteren pointer

--------------------Kaynak Kodum---------------
while((ch=fgetc(in))!=EOF)
{ ptrch=&ch; //her defasında adresi yeniliyor

if((*(ptrch+1))==' ' || (*(ptrch+1))== '.'|| (*(ptrch+1))==',' || (*(ptrch+1))=='!' || (*(ptrch+1))=='?' || (*(ptrch+1))==':' || (*(ptrch+1))==';' || (*(ptrch+1))=='...')

{ printf ("\nburdayim1"); //Döngüde takildigim yeri bulmak icin
{ printf("\nburdayim");

if( ((*ptrch)>='a'&&(*ptrch)<='z')||((*ptrch)>='A'&&(*ptrch)<='Z'))
/*hiçdöngünün içine girmedi*/
{
printf("\nburdayim2");
k++;
}
}
-------------------------------------------------- :rolleyes:


Sabahi
02/05/2005, 07:28
Ilk bakista bu kod turkce karakter seti ile yazilmis dosyalar icin calismaz.

if( ((*ptrch)>='a'&&(*ptrch)<='z')||((*ptrch)>='A'&&(*ptrch)<='Z')) bu ifade sadece ingilizce alfabe icin dogru.

acehreli
02/05/2005, 22:54
koderum, gosterdigin kodlar yeterli degil. Sanirim ch'yi soyle tanimliyorsun:

char ch;

veya soyle:

int ch;

Ne olursa olsun, ch bir dizi degil...

O zaman (ptrch + 1) yaptigin anda tanimsiz davranisa neden oluyorsun. Cunku ch'den sonra bir nesne yok.

Ali