PDA

View Full Version : پیدا کردن کلمات به جمله



1485159
چهارشنبه 07 مرداد 1388, 13:49 عصر
من یخوام که کلمات یه جمله رو به طور دقیق به دست بیارم مثلا:


ali reza ( d d d)

خوب حالا مشکلم اینجاست که که میخوام داخل پارانتز یدونه حساب بشه....
و جمله بالا رو 3 کلمه حساب کنه.
ممنون میشم یه نمکونه کد بزارین
در ضمن این یه پروژه نیست ، خودم میخوام بدونم

1485159
چهارشنبه 07 مرداد 1388, 21:24 عصر
کسی نظری نداره؟

tdkhakpur
چهارشنبه 07 مرداد 1388, 21:43 عصر
سلام
خوب کاری نداره شما رشته را تار رسیدن به جای خالی و پارانتز باز بررسی کنید و وقتی که به این نقاط رسیدید شمارنده را افزایش داده و رشته را ثبت کنید


int c=0;
char mystr[32];
bool parantez=false;
for( int i=0; i<strlen(str); i++ )
{

if( str[i]==' ' && !parantez){
mystr[c] =0;
cout<< mystr;
c = 0;
}else
if( str[i]=='('){
parantez = true;
}else
if( str[i]==')' ){
parantez = false;
mystr[c] =0;
cout<< mystr;
c = 0;
}else
mystr[c++] = str[i];
}

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

1485159
چهارشنبه 07 مرداد 1388, 21:51 عصر
خوب فرض منیم ما میخوام که یه کامپایلی بنویسیم ، اونوقت باید کلمات رو دونه دونه پردازش کنیم اونوقت سرعت خیلی پایین میاد مگه نه؟اصلا کاپایلر ها چطوری این کارو میکنن؟ممنون.

Felony
پنج شنبه 08 مرداد 1388, 00:13 صبح
سلام
خوب کاری نداره شما رشته را تار رسیدن به جای خالی و پارانتز باز بررسی کنید و وقتی که به این نقاط رسیدید شمارنده را افزایش داده و رشته را ثبت کنید


int c=0;
char mystr[32];
bool parantez=false;
for( int i=0; i<strlen(str); i++ )
{

if( str[i]==' ' && !parantez){
mystr[c] =0;
cout<< mystr;
c = 0;
}else
if( str[i]=='('){
parantez = true;
}else
if( str[i]==')' ){
parantez = false;
mystr[c] =0;
cout<< mystr;
c = 0;
}else
mystr[c++] = str[i];
}

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

فکر میکنم سینتکس کدتون C هستش !

tdkhakpur
پنج شنبه 08 مرداد 1388, 12:34 عصر
فکر میکنم سینتکس کدتون C هستش !
سلام
واقعا شرمنده این روزها اصلا حواسمان سر جاش نیست به هر حال الگوریتم کار همین باید باشد.
ولی در مورد سوال دوستمان در رابطه با سرعت پردازش باید عرض کنم که بالاخره روش کار همین هست میتوانید با کشیدن رشته داخل ram و از سرعت پردازش در ram بهره بگیرید.

vcldeveloper
پنج شنبه 08 مرداد 1388, 18:42 عصر
اصلا کاپایلر ها چطوری این کارو میکنن؟
الگوریتم های شناخته شده ایی برای Parse کردن کد توسط کامپایلرها وجود دارند، که در کتب مربوط به طراحی کامپایلر به آنها پرداخته شده. در هر حال، این سوال را باید در تالار الگوریتم ها و کامپایلرها، که زیرمجموعه بخش مهندسی نرم افزار سایت هست، بپرسید.