#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