PDA

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



as-soft
شنبه 28 خرداد 1390, 15:45 عصر
سلام
میخوام وقتی برنامه رو اجرا میکنم یه عدد از کاربر گرفته وبه تعداد اون چند تا اسم دریافت ودرپایان یک سوال مبنی بر رشته مورد جستجو را وارد کنید گرفته و رشته مورد نظر را از میان رشته های وارد شده پیدا کند.برنامه رو نوشتم فقط جواب غلط میده مشکل کجاست؟
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int i;
cout<<"enter number to start: ";
cin>>i;
char str1[5],str2[5];
for(int y=0;y<i;y++){
cout<<"enter your name: ";
cin.get(str1,5,'\0');

}
cout<<"enter string to search: ";
cin.get(str2,5,'\0');cout<<endl;
if(!strcmp(str1,str2))
cout<<str2<<" correct"<<endl;
else
cout<<str2<<" is not correct"<<endl;
cin.get();
return 0;
}

.:saeed:.
شنبه 28 خرداد 1390, 20:07 عصر
قراره کاربر i تارشته وارد کنه شما هم این i تا رشته رو میگیرید ولی همه توی str1 ریخته میشند و در آخر ، آخرین رشته فقط در str1 مونده . در ضمن در قسمت بعدی شما فقط یه رشته وارد شده توسط کاربر رو سرچ میکنید.

rezaheidarida
شنبه 28 خرداد 1390, 22:39 عصر
من یه برنامه نوشتم برای این! ولی نمی دونم چرا کارایی مورد نظر را نمی ده!
استادان یه نظری بدن! برای خودمم مسئله ای شد مشکل کجاست!
کامپایلر که هیچ اروری نمی گیره!
از حافظه پویا استفاده کردم...


#include<iostream>
#include<string.h>
#include <conio.h>
using namespace std;

int main() {
int n;

char (*name)[30];
char sea[30];
cout<<"Enter number of words : ";
cin>>n;
cout<<endl;
name = new char [n][30];
for (int i=0 ; i<n ; i++){
cout<<"Enter word number "<<i+1<<" :";
scanf("%s",&name[i][30]);
}
while (1){
cout<<endl<<"Enter a word to search : ";
scanf("%s", &sea);

for (int i=0 ; i<n ; i++){

if (strcmp(sea ,&name[i][30]) == 0 ){

cout<<"Word Found !";
break;
}
else if ( i = n-1 ){
cout<<"Word Not Found !";
break;
}

}


}



getch ();
return 0;
}

as-soft
یک شنبه 29 خرداد 1390, 08:41 صبح
فکر کنم تا حدودی منظور دوستم رو فهمیدم.
برنامه رو نوشتم ولی باز هم خطا میده !
فایل رو ضمیمه کردم ، لطفا توضیح وجواب درست رو برام بگذارید.
لینک دانلود (http://as-soft.persiangig.com/source/string.cpp)