• 28-03-2013, 23:50:31
    #10
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    evet ctrl f tarzı bir şey de senin istediğin mesela

    merhaba

    m = 1 tane
    e = 1 tane
    r = 1 tane
    h = 1 tane
    a= 2 tane
    b= 1 tane

    gibi bi şey değil mi? yoksa

    ali ata bak

    cümlesinde ali diye geçen kelime sayısını mı bulmak ?
    2.'si ali ata bak cümlesindeki ali kelimesini veya kelimelerini bulmak.
  • 29-03-2013, 00:04:28
    #11
    #include <iostream>
    #include <stdlib.h> 
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    
    
    class Metin 
    { 
     private: 
        int sozcuksay (char *aptr,char *arptr)
        {
        char *aranacak;
        int i,b,adet=0;
        for (i=0;aptr[i]!='\0';i++)
        aptr[i]=toupper(aptr[i]);
        for(i=0;arptr[i]!='\0';i++)
        arptr[i]=toupper(arptr[i]);
        arptr=strcat(arptr," ");
        aranacak=strstr(aptr,arptr);
        b=strlen(arptr);
        while(aranacak!=NULL){
        adet++;
        for(i=0;i<b;i++)
        aranacak++;
        aranacak=strstr(aranacak,arptr);
        }
        return adet;
        }
    
     public: 
        void  KelimeBul(char metin[], char aranan[]) 
        {      
        printf("aradiginiz kelime cumle icinde %d kez geciyor\n",sozcuksay(metin,aranan));
        }
    
    }; 
    
    int main()
    {    
        char a[250],b[30];
        cout<<"cumle giriniz: ";
        cin.getline(a,250);
        cout<<"aranan kelime: ";
        cin.getline(b,30);
        strcat(a," ");
            
        Metin metinAra;    
        metinAra.KelimeBul(a,b);    
        system("PAUSE");     
        return 0; 
    }



    yanlız bu kelime bazında arama yapıyor. mesela ali ata bak yazdığında al ı aratırsan 0 sonucunu verir ya da a yı aratırsan 0 sonucunu verir. eğer kelime değil de harf dahi olsa arasın diyorsan sozcuksay fonksiyonunun içindeki arptr=strcat(arptr," "); bu kısmı silersen dediğin gibi harf de sayar
  • 29-03-2013, 00:17:44
    #12
    yardımlarınız için çok teşekkür ederim dediğiniz gibi o kısmı kaldırdım şu an karakter bazında arama yapıyor daha iyi oldu.

    bunun dışında #include <stdlib.h> #include <stdio.h> kütüphanelerini kaldırdım daha bunları görmediğimiz için sıkıntı olurdu. ama yine de program çalışıyor herahangi bir hata vermedi.

    ayrıca aklıma takılan bir soru var int yerine void kullansaydık ne olurdu neden fonksiyonu int ile yaptık? birde \0 'ı bu zamana kadar ilk defa gördüm bunun anlamı nedir NULL yazsak olmaz mıydı?
  • 29-03-2013, 00:35:47
    #13
    evet o kütüphaneler fazlaydı ama ben dokunmadım, çok da önemli değil..

    hımm sorularınza gelirsek, void olsaydı o fonksiyon bir değer dönderemezdi. orada kaç karakter olduğunu hesaplıyor ve o sonucu geri dönderiyor. void ler birer metoddur ve geri dönüş değeri yoktur. başka nasıl yapılabilinirdi? mesela pointer kullanılabilirdi metod parametresi için..

    \0 ifadesi char boşluğu anlamındadır yani ' ' bu dur. null tamamen boş bir şey atanmamış ama \0 ifadesi bildiğn boşluk karakteri
  • 29-03-2013, 00:44:38
    #14
    hımm anladım hocam şimdi daha mantıklı geldi, programlamada yeni olduğum için fazla soru soruyorum meraktan.