امتیاز موضوع:
  • 4 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
جستجوی یک کلمه در متن
نویسنده پیام
ΛΛ Θ l-l $ Σ Ω آفلاین
کاربر با تجربه
****

ارسال‌ها: 739
موضوع‌ها: 147
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 219
( 187 تشکر در 98 ارسال )
ارسال: #1
Question  جستجوی یک کلمه در متن
سلام من می خوام برنامه ای به زبان C++ بنویسم که اول یک متن دریافت کند و بعد یه کلمه و برسی کنه که آیا اون کلمه در متن و جود داشته یا نه و اگر وجود داشته چند بار بوده؟

Exclamation
(آخرین ویرایش در این ارسال: ۲۱-آذر-۱۳۸۷, ۲۲:۴۹:۳۴، توسط ΛΛ Θ l-l $ Σ Ω.)
۲۱-آذر-۱۳۸۷, ۲۲:۴۶:۳۹
ارسال‌ها
پاسخ
Rink8 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 224
موضوع‌ها: 49
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 302
( 481 تشکر در 112 ارسال )
ارسال: #2
RE: جستجوی یک کلمه در متن
با سلام و احترام خدمت دوست گرامی
بله می توانی این کار را به کمک جستجوی دودویی و ... سایر جستجو ها انجام بدهی
و آنها را در درون حلقه بگذاری و با استفاده از یک متغیر شمارشی متن های تکرار شونده را شمارش بدهید.
موفق باشید.
۲۲-آذر-۱۳۸۷, ۱۲:۴۳:۱۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ΛΛ Θ l-l $ Σ Ω
ΛΛ Θ l-l $ Σ Ω آفلاین
کاربر با تجربه
****

ارسال‌ها: 739
موضوع‌ها: 147
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 219
( 187 تشکر در 98 ارسال )
ارسال: #3
RE: جستجوی یک کلمه در متن
سلام
توی دانشگاه به ما جستجوی دودویی و خطی یاد ندادن و نباید هم توی برنامم از چیز هایی که یاد ندادن استفاده کنم.
راه دیگه ای نیست؟

Exclamation
۲۲-آذر-۱۳۸۷, ۱۶:۱۷:۳۳
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: جستجوی یک کلمه در متن
چرا هست متن رو بریز تو یه ارایه و با استفاده از یه حلقه تو ارایه بگرد دنبال متنت هر سری به اندازه تعداد کاراکترهای کلمه ات از ارایه رو بگیر و مقایسه کن
۲۲-آذر-۱۳۸۷, ۱۹:۲۵:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ΛΛ Θ l-l $ Σ Ω
ΛΛ Θ l-l $ Σ Ω آفلاین
کاربر با تجربه
****

ارسال‌ها: 739
موضوع‌ها: 147
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 219
( 187 تشکر در 98 ارسال )
ارسال: #5
RE: جستجوی یک کلمه در متن
لطفا یخورده مبتدیانه تر توضیح بدید آخه من تازه C++ رو شروع کردم.

Exclamation
۲۲-آذر-۱۳۸۷, ۲۲:۳۵:۲۳
ارسال‌ها
پاسخ
mahbooob آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 24
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1422
( 2312 تشکر در 367 ارسال )
ارسال: #6
RE: جستجوی یک کلمه در متن
سلام

من این برنامرو برات نوشتم شاید دستوراتشو نخونده باشین و مجاز به استفاده نباشین...ولی فکرمیکنم این کوتاهترین برنامه برای سوال شما باشه...سعی میکنم دستوراتشو توضیح بدم..
کد php:
char str1[ ] = "this is a test.there is ... .";
char str2[ ] ="is";

char tokenptr;
int n=0;

tokenptr=strtok(str1," ");
while(
tokenptr!=NULL){
       if(
strcmp(str1,str2)==0))            
             
n++;                                             
       
tokenptr=strtok(NULL," ");            
}

cout<<"there are"<<n<<str2<<"in this string."

strcmp(s1,s2)
دستوریه برای مقایسه دو رشته.اگر دورشته باهم مساوی بودند مقدار صفر را بر میگرداند.اگر s1 کوچکتر بودمقداری کوچکتر از صفر برمیگرداند(و اگر بزرگتر بود بزرگتتر از صفر)

strtok(s1,const char * s2)
رشته ی s1 را به قسمتهایی تقسیم میکند...مثل کلمات موجود در یک جمله... s2 معلوم میکند که رشته ی s1تا چه قسمتی جدا شود...(مثلا در اینجا که blankگذاشتم باعث میشه که کلمه های جمله جدا بشن)
در فراخوانی های بعدی این تابع اگر بخواهیم از ادامه ی آن جداسازی را انجام دهد باید به جای آرگومان اول NULL بنویسیم.
(آخرین ویرایش در این ارسال: ۲۳-آذر-۱۳۸۷, ۱۸:۱۶:۲۲، توسط mahbooob.)
۲۳-آذر-۱۳۸۷, ۱۷:۵۶:۳۱
ارسال‌ها
پاسخ
تشکر شده توسط : ΛΛ Θ l-l $ Σ Ω, lord_viper, t3r!p3000
mahbooob آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 24
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1422
( 2312 تشکر در 367 ارسال )
ارسال: #7
RE: جستجوی یک کلمه در متن
اگه میخواین با دستورات ساده تر باشه بگین تا بنویسم...
توی این برنامه، متن و کلمه ی مورد جستجو را در ابتدای برنامه مشخص کردم...ولی میتونین با دستور cin.getline هر دوتا رشته را از کاربر دریافت کنین...
۲۳-آذر-۱۳۸۷, ۲۰:۲۷:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : ΛΛ Θ l-l $ Σ Ω
ΛΛ Θ l-l $ Σ Ω آفلاین
کاربر با تجربه
****

ارسال‌ها: 739
موضوع‌ها: 147
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 219
( 187 تشکر در 98 ارسال )
ارسال: #8
RE: جستجوی یک کلمه در متن
(۲۳-آذر-۱۳۸۷, ۲۰:۲۷:۴۳)mahbooob نوشته است: اگه میخواین با دستورات ساده تر باشه بگین تا بنویسم...
توی این برنامه، متن و کلمه ی مورد جستجو را در ابتدای برنامه مشخص کردم...ولی میتونین با دستور cin.getline هر دوتا رشته را از کاربر دریافت کنین...
بله راستش خیلی متوجه نشدم که چی شد
مثلا این خط char * tokenptr; یا tokenptr=strtok(NULL," "); رو تا حالا نداشتیم

با دستور cin.getline یا<< cin ؟

Exclamation
(آخرین ویرایش در این ارسال: ۲۳-آذر-۱۳۸۷, ۲۰:۴۱:۵۵، توسط ΛΛ Θ l-l $ Σ Ω.)
۲۳-آذر-۱۳۸۷, ۲۰:۴۰:۳۷
ارسال‌ها
پاسخ
mahbooob آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 24
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1422
( 2312 تشکر در 367 ارسال )
ارسال: #9
RE: جستجوی یک کلمه در متن
آهان..خب چیز مهمی نیست...
اینم یکی از روشهای تعریف آرایه است..یعنی ایندو باهم معادلن:
char tokenptr[] , char *tokenptr

اون یکیم که توتوضیحاتش گفتتم..ببین مثلااگر str1باشه this is a test.....
وقتی مینویسیم tokenptr=strtok(str1," ")
یعنی از ابتدای str1 یک قسمتی را جدا کن تا جایی که به blank برسه و اونو بریز توی آرایه ی tokenptr..
پس در اینجا "this" داخل tokenptrذخیره شده.
اگر بعد از این هم همین دستتور را دوباره بنویسیم دائما همین this جدا میشود...پس همانطور که در توضیحات دستتورش گفتم باید برای اینکه از قسمت ادامه ی آن کلمه را جدا کنیم از دستور tokenptr=strtok(NULL," "); استفاده کنیم.که در اینصورت به ترتیب کلمه های is بعد a بعدtest و به همین ترتیب...جدا و مقایسه میشوند......

انشا... فردا یه برنامه ی دیگه میذارم که بادستورات ساده تر باشه..
(آخرین ویرایش در این ارسال: ۲۴-آذر-۱۳۸۷, ۱۵:۱۹:۰۸، توسط mahbooob.)
۲۴-آذر-۱۳۸۷, ۰۲:۳۲:۲۵
ارسال‌ها
پاسخ
تشکر شده توسط : ΛΛ Θ l-l $ Σ Ω, lord_viper, t3r!p3000
ΛΛ Θ l-l $ Σ Ω آفلاین
کاربر با تجربه
****

ارسال‌ها: 739
موضوع‌ها: 147
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 219
( 187 تشکر در 98 ارسال )
ارسال: #10
RE: جستجوی یک کلمه در متن
(۲۴-آذر-۱۳۸۷, ۰۲:۳۲:۲۵)mahbooob نوشته است: آهان..خب چیز مهمی نیست...
اینم یکی از روشهای تعریف آرایه است..یعنی ایندو باهم معادلن:
char tokenptr[]: , char *tokenptr;

انشا... فردا یه برنامه ی دیگه میذارم که بادستورات ساده تر باشه..
ما اینجوری char tokenptr[] مینویسیمHappy
دستت درد نکنه پس منتظر برنامه جدید هستم Clap

Exclamation
۲۴-آذر-۱۳۸۷, ۱۳:۴۲:۵۷
ارسال‌ها
پاسخ
mahbooob آفلاین
كاربر دو ستاره
**

ارسال‌ها: 221
موضوع‌ها: 24
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1422
( 2312 تشکر در 367 ارسال )
ارسال: #11
RE: جستجوی یک کلمه در متن
(۲۴-آذر-۱۳۸۷, ۱۳:۴۲:۵۷)mohsen_f نوشته است: ما اینجوری char tokenptr[] مینویسیمHappy

دلیلش اینه که هنوز درستون به رشته ها و اشاره گر هانرسیده...Laugh
۲۴-آذر-۱۳۸۷, ۱۵:۲۲:۴۶
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  پیدا کردن کلمه در یک متن matha.a 6 5,956 ۲۶-دى-۱۳۹۵, ۱۰:۰۱:۵۵
آخرین ارسال: babyy
Exclamation [سوال] جستجوی دودویی با استفاده از اشارگرها در زبان C mitra.kh 1 4,178 ۲۴-فروردین-۱۳۹۰, ۱۴:۳۶:۴۰
آخرین ارسال: mitra.kh

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS