PDA

View Full Version : پیدا کردن کلمات مشترک اشاره گر کاراکتری



emadfa
شنبه 19 تیر 1389, 12:06 عصر
دوستان دوباره سلام
از پاسخ هایی که در پست قبلی دادید بی نهایت ممنونم! اصولا من در بحث اشاره گرها مشکلات جدی دارم!
من نیاز به نوشتن یک تابع دارم به شکل زیر:

char *FindSimilarity(char *firstText, char*SecondText);


که دو اشاره گر کاراکتری را بگیرد و کلمات مشترک بین دو اشاره گر را پیدا کند و آنها را در یک اشاره گر دیگر ذخیره کرده و به عنوان مقدار خروجی بفرستد!!!

نیاز به نوشتن یک تابع به شکل زیر نیز دارم!


int *pFindIteration(char *strPtr, string Text);

که یک اشاره گر کاراکتری شامل تعدادی کلمه را بگیرد به همراه یک رشته. سپس تعداد تکرار هر کدام از عناصر اشاره گر را در یک اشاره گر صحیح بریزد. به عنوان مثال تعداد تکرار اولین کلمه اشاره گر باید در اولین عنصر اشاره گر صحیح ریخته شود. به عبارت دیگر طول اشاره گر صحیح باید با طول اشاره گر کاراکتری برابر باشد. سپس این اشاره گر کارکتری برگردانده شود.


بسیار ممنون می شم اگه کمکم کنید!

PC2st
شنبه 19 تیر 1389, 17:39 عصر
شما در کدام قسمت از پیاده‌سازی آنها مشکل دارید؟

Salar Ashgi
شنبه 19 تیر 1389, 19:38 عصر
دوست عزیز بجای درگیر شدن با اشاره گر و خطاهای احتمالی ناشی از آن ، از نوع داده ای String و توابع

کلاس String.h استفاده کنید .

emadfa
شنبه 19 تیر 1389, 23:14 عصر
دوست عزیز بجای درگیر شدن با اشاره گر و خطاهای احتمالی ناشی از آن ، از نوع داده ای String و توابع

کلاس String.h استفاده کنید .

دوست عزیز! حرف شما درست اما در قسمتی هایی از برنامه نمی توان از نوع داده string استفاده کرد! به خصوص وقتی می خواهیم مجموعه ای از کارکترها یا کلمات که تعداد آنها را نمی دانیم ذخیره کنیم.


شما در کدام قسمت از پیاده‌سازی آنها مشکل دارید؟


من در الگوریتم تشخیص تشابه کلمات مشکل دارم! البته خودم این توابع را پیاده سازی کردم که متاسفانه خطا دریافت می کنم.

Salar Ashgi
شنبه 19 تیر 1389, 23:18 عصر
به خصوص وقتی می خواهیم مجموعه ای از کارکترها یا کلمات که تعداد آنها را نمی دانیم ذخیره کنیم.



اگه امکانش هست منظورتون رو با یه مثال مطرح کنید .

فکر نکنم مشکلی پیش بیاد .

emadfa
یک شنبه 20 تیر 1389, 00:28 صبح
اگه امکانش هست منظورتون رو با یه مثال مطرح کنید .


دوست عزیز!
ممنون از راهنمایی و کمکتون
مثلا در همون تاپیک قبلی خودم که دیروز مطرح کردم! ما یک رشته داریم و این رشته می تواند شامل n تا کلمه باشد. حالا می خواهیم این کلمات را دسته بندی کنیم. نمی توانیم ان کلمات را در یک رشته دیگر ذخیره کنیم. هدف تمایز کلمات و دسترسی به آن است پس مجبوریم از یک اشاره گر کاراکتری استفاده کنیم.

Salar Ashgi
یک شنبه 20 تیر 1389, 00:33 صبح
ما یک رشته داریم و این رشته می تواند شامل n تا کلمه باشد. حالا می خواهیم این کلمات را دسته بندی کنیم. نمی توانیم ان کلمات را در یک رشته دیگر ذخیره کنیم. هدف تمایز کلمات و دسترسی به آن است پس مجبوریم از یک اشاره گر کاراکتری استفاده کنیم.


شما حالا با دستورات متفاوتی از جمله Strtok و ... بر اساس یک delimeter (کاراکتر جدا کننده) کلمات

یک رشته که مثلا با فاصله از هم جدا شده اند ، رو استخراج میکنید . خوب حالا میتونید این کلمات رو

قرار بدید در داخل یه vector ای از string ها ، بشکل زیر :



#include <vector>
#include <string>
using namespace std;
vector<string> v;



که این روش امنیت ، انعطاف پذیری و کنترلش بالاتر و راحتتره .

موفق باشید .

emadfa
یک شنبه 20 تیر 1389, 14:52 عصر
شما حالا با دستورات متفاوتی از جمله Strtok و ... بر اساس یک delimeter (کاراکتر جدا کننده) کلمات

یک رشته که مثلا با فاصله از هم جدا شده اند ، رو استخراج میکنید . خوب حالا میتونید این کلمات رو

قرار بدید در داخل یه vector ای از string ها ، بشکل زیر :

بله. حرف شما درسته! دوست من!

اما متاسفانه یا خوشبختانه!!!! من هزاران خط از برنامم رو براساس همین اشاره گرهای کارکتری نوشتم و بازنویسی آنها خیلی زمان بره!

به هر حال ممنون اما اگر هر کسی در نوشتن این دو تا تابع می تونه بهم کمک کنه ممنونش می شم.