ورود

View Full Version : سوال در مورد رشته



obscure
دوشنبه 27 آبان 1387, 11:27 صبح
برنامه ای بنویسید که رشته ای را از ورودی دریافت و وجود ان را جستجو نماید.
مثال:
abmdfjd ghuye
mdf را پیدا کند.
برنامه ای که من نوشتم همه جوره کار می کنه فقط یه باگ داره اونم اینه که مثلا وقتی mdfQ رو سرچ می کنم بازم مقدار 1 بر میگردونه...مشکلم کجاست؟ کمک کنید لطفا.

obscure
دوشنبه 27 آبان 1387, 15:36 عصر
#include<iostream.h>
#include<conio.h>
#include<string.h>
class search{
char a[20],temp[20];
int n,i,f,j,m;
public:
search::search(){f=0;j=0;}
void get_char();
void find();
void print();
};
void search::get_char(){
cout<<"enter your text:";
cin.get(a,20);
cin.get();
cout<<"enter word to find:";
cin.get(temp,20);
cin.get();
}
void search::find(){
n=strlen(temp);
m=strlen(a);
for(i=0;i<=n;i++){
if(n>=1&&n==m&&strcmp(temp,a)==0){
f=1;
}
}
for(i=0;i<=m;i++){
if(n>1&&n<m&&temp[j]==a[i]&&temp[j+1]==a[i+1]){
j++;
f=1;
}
if(n>m){f=0;}
}
cout<<f;
}
int main(){
search a;
a.get_char();
a.find();
getch();
return 0;
}

shahin_sharifi
جمعه 01 آذر 1387, 13:00 عصر
دوست عزیز مشکله برنامه شما تو این کد حل شده!:لبخندساده:

saman6384
جمعه 01 آذر 1387, 18:04 عصر
سلام
منم این مسئله رو به یه روش دیگه حل کردم! به روش بازگشتی!



#include <iostream.h>
#include <conio.h>
void search(char[],char[]);
int f (char[],char[],int,int,int);
int main()
{
clrscr();
char c[31],c1[31];
cout<<"enter your string : ";
cin.get(c,30);
cin.get();
cout<<"\nenter your words : ";
cin.get(c1,30);
search(c,c1);
getch();
return 0;
}
//**********
void search (char c[],char c1[])
{
int j,k,a=0,b;
for (j=0;c1[j];j++);
int l=1;
for (k=0;c[k];k++){
b=k;
if (f(c,c1,a,b,j)){
cout<<"\nyour words exist";
l=0;
break;
}//end of if
}//end of for
if (l)
cout<<"\nyour words not exist";
}
//*********
int f(char c[],char c1[],int a,int b,int j)
{
if (c[b]==c1[a]){
f(c,c1,++a,++b,j);
if (a==j)
return 1;
}
else
return 0;
}

shahin_sharifi
شنبه 02 آذر 1387, 23:33 عصر
روشه شما هم کاملا درسته,اما تو این کدی که گذاشتم علاوه بر نشان دادن بودن یا نبودن کلمه تعداد تکرار شدن اون رو در کل عبارت هم مشخص میکنه!:لبخندساده: