#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