PDA

View Full Version : تعداد تکرار هر کلمه در جمله



fshb_ 1370
دوشنبه 16 فروردین 1389, 17:36 عصر
سلام
میخوام یه برنامه بنویسم که تعداد تکرار هر کلمه در جمله رو محاسبه کنه و بعد تعداد هر کلمه رو در صفحه نمایش بده. من برنامه زیر رو نوشتم ولی مشکلش اینه که مثلا اگر جمله
"fshb va fshb" رو وارد کنم خروجی برنامه هست:fshb=2, va=1, fshb=1
مشکل برنامه من اینه که نباید fshb=1 رو چاپ کنه، اگه میشه راهنمایی کنید چه شکلی مشکل برنامه رو حل کنم.:ناراحت:

#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{
char a[100];
cin.getline(a,100);
int i=0,j=0,k=0,n=-1;
cout<<"tedade kalamat:"<<endl;
do{
j=0;
i=n+1;
vector<char> b(100);
vector<char> c(100);
do {
k=0;
while(a[i]!=' '&&a[i]!='\0')
{
b[k]=a[i];
k++;
i++;
}
if (j==0)
{
c=b;
n=i;
}
if (b==c)
j++;
if (a[i]!='\0')
i++;
}while(a[i]!='\0');
//
k=0;
while(c[k]!='\0')
{
cout<<c[k];
k++;
}
cout<<"="<<j<<endl;
}while(a[n]!='\0');
}

amin1softco
دوشنبه 16 فروردین 1389, 19:18 عصر
شما می تونید چند تا کار کنید اول اینکه مکان رخ دادن هر رشته رو ذخیره کنید با طولش و از روش در مراحل بعدی بپرید یا اینکه رشته اصلی رو تغییر بدین که دیگه رشته های تکراری درش حذف بشند تا مشکل برطرف بشه.
البته شاید راه های خیلی بهتری هم وجود داشته باشه....