سلام
برنامه شما رو کمی تغییر دادم به این شکل شد
کد php:
#include <iostream.h>
#include <string.h>
main()
{
char str1[20] ;
char str2[10] ;
char * s;
int n=0;
cin>>str1;
cin>>str2;
s = strtok(str1," ");
while(s!=NULL)
{
if(strcmp(str1,str2)==0)
{
n++;
s=strtok(NULL," ");
}
}
cout<<"there are "<<n<<" "<<str2<<" in this string.";
cin.get ();
cin.ignore();
return 0;
}
الان یه مشکل داره:وقتی که توی رشته اول is و رشته دوم هم is را وارد می کنیم برنامه به درستی عدد 1 را چاپ می کند اما اگر در رشته اول isis و در رشته دوم is را وارد کنیم برنامه هنگ می کند.
سلام
مثل اينكه من چند جا رو اشتباه تايپ كردم . البته شايد مربوط به خط هم باشه .
واسه همين اصلش رو مي ذارم .
(۲۹-آذر-۱۳۸۷, ۰۶:۰۸:۱۶)terip2008 نوشته است: [ -> ]
سلام
مثل اينكه من چند جا رو اشتباه تايپ كردم . البته شايد مربوط به خط هم باشه .
واسه همين اصلش رو مي ذارم .
سلام من ایم کد رو گذاشتم ولی به قسمت char str2[]; مشکل داره اجرا نمیگیره
(۲۹-آذر-۱۳۸۷, ۰۶:۰۸:۱۶)terip2008 نوشته است: [ -> ]
سلام
مثل اينكه من چند جا رو اشتباه تايپ كردم . البته شايد مربوط به خط هم باشه .
واسه همين اصلش رو مي ذارم .
سلام دست شما درد نکنه بعضی جاهاش اشتباه تایپی بود که درست کردم اما هنوز یه مشکل هست این برنامه به من خروجی نمیده!
جمله و کلمه رو تایپ می کنم و هیچ اتفاقی نمی افته.
کد php:
#include <iostream.h>
#include <string.h>
main()
{
int n=0,i=0,j=0,f=0;
const int SIZE=80;
char str1[SIZE];
char str2[10];
cout<<"please enter your type"<<endl;
cin.getline (str1,SIZE);
cout <<"enter the searching word"<<endl;
cin>>str2;
while (str1[i] != '\0')
{
if (str1[i] != ' ' )
if (str1[i]==str2[j])
{
f=0;
for ( j=0 ; str2[j] != '\0' ; j++)
if (str1[i] == str2 [j])
i++;
else
f = 1;
if ( f==0 && str1[i] == ' ' )
n++;
j=0;
while(str1[i] != '\0')
i++;
}
else
while (str1[i] != ' ' )
i++;
i++;
}
cin.get();
cin.ignore ();
return 0;
}
terip2008 نوشته است:واسه همين اصلش رو مي ذارم .
وای این چه کاری بود کردین
؟؟!!!!!!!!!!!!!!!!!!!!!!!حالا همه میگن علی آقا حق داشتته بیچاره که با این دستخط خرچنگ قورباغه نتونه برنامه را درست بخونه...
باور کنین دستخطم اینقدرام ضایع نیست.جاتون خالی ما مشهد بودیم(
آقا محسن شرمنده دیر شد.دلیلش همین بود...)باور کنین این برنامه را
تو ماشین نوشتتم.دیگه بهتر از این نمیشد نوشت..
نقل قول: اما هنوز یه مشکل هست این برنامه به من خروجی نمیده!
خب معلومه که خروجی نمیده....تو کدوم یکی از دستوراتتتون میخواین خروجی بگیرین؟؟!!نه جایی cout نوشتین نه چیز دیگه ای داره که بخواد خروجی بده....
این جمله را اضافه کنین:(قبل از cin.get(); )
cout<<"there are "<<n<<str2<<"in this text";
این جمله خروجی را برای شما نمایش میده.
نقل قول: بعضی جاهاش اشتباه تایپی بود که درست کردم
هنوزم اشتباه تایپی داره:
cout<<"please enter your type"<<endl;
type اینجا معنی نمیده...من نوشتم text
البته این اشتباه تاثیری توی اجرا نداره...
ولی یک اشتباه دیگه که کلا برنامه را میریزه به هم...در قسمت:
..
.
.
.
j=0;
while(str1[i] != '\0')
i++;
}
else
.
.
.
توی دستور('while(str1[i] != '\0 اشتباه نوشتین..باید اینطوری اصلاحش کنین:
(' '=![while(str1[i اگه دستنوشتمو دیدین ،منظورم از اون علامت،blankبوده که با این علامت نشونش میدن...(همون space)
mrn_xp نوشته است:سلام من ایم کد رو گذاشتم ولی به قسمت char str2[]; مشکل داره اجرا نمیگیره
اگه سایز آرایه را براش تعریف کنین درست میشه..مثل اینکه آقا محسن تو برنامشون نوشتتن....
فکر نمیکنم دیگه برنامه مشکلی داشتته باشه.
توی این برنامه باید حالتای مختلفی را در نظر میگرفتین برای جواب دادنش...
مثلا:
- اگه اول متن blank داشته باشه...
- اگه بین کلمات داخل متن بیش از یک blank باشه..
- اگه کلمه ی مورد جستتجو حروف اول یک کلمه ی دیگه باشه
- اگه کلمه ی مورد جستتجو حروف میانی یک کلمه دیگه باشه
.
.
همه ی این حالتارو میتونین توی این جمله ببینین:
(میتونین با همین تستش کنین...اگه ایراد داشت بگین چون من نمیتونم تستش کنم)
str1:
hhhkkkgg is a is isn't dis...
str2:
is
دست شما درد نکنه برنامه عالیه
آقا تورو خدا یکی دوباره کامل تستش کنه من خیلی احتیاج دارم این ایراد داره
(۰۸-خرداد-۱۳۸۸, ۲۳:۲۱:۳۷)dunker نوشته است: [ -> ]آقا تورو خدا یکی دوباره کامل تستش کنه من خیلی احتیاج دارم این ایراد داره
چه خطایی میده؟ولی درسته ها...
تعداد دفعات تکرار رو اشتباه چاپ میکنه
شما رشته های مختلف بش بده