PDA

View Full Version : کسی میدونه مشکل این برنامه چیه؟؟



parian
جمعه 27 آبان 1384, 08:00 صبح
سلام...ترو خدا اگه کسی مشکل این برنامه رو فهمید به من بگه//برنامه ایه که یه جمله و یه کلمه رو می خونه و بغد میگه که کلمه تو جمله بوده یا نه...ولی نمی دونم چرابا اینکه ارور نمی ده ولی اجرا هم نمی شه...
#include<stdio.h>
#include<string.h>
void main( )
{
int i=0 , found=0;
char word[10] , sent[10][10];
printf( "Enter a sentence:" );
do{
scanf( " % s", sent[i] );
}
while( strcmp(sent[i++]," . " ));
printf( " Enter a word: " );
scanf(" % s ", word );
i=0;
while( strcmp( sent[i] ,"." ))
{ if(strstr(sent[i++],word))
found=1;
}
if(found==1)
printf("found");
else
printf("Not found\n");


}

M.kavyani
جمعه 27 آبان 1384, 14:31 عصر
با سلام
من این برنامه رو کپی کردم و روی ان کمی کار کردم به یه مشکل عجیب و خنده دار برخوردم البته خنده به سواد کم خودم بود نه به شما دوست عزیز. شما دقت کنید. در scanf سویچی که استفاده کردیده اید از فاصله هم استفاده کردیده اید. این باعث شده که حلقه شما فقط بچرخد و برنامه به عبارتی هنگ کند من بعد از اینکه این مشکل رو رفع کردم دیدم که برنامه کار میکند و مشکلی ندارد.

کد درست به صورت زیر میباشد.

scanf("%s",sent[i]);

کد غلط که شما نوشته اید

scanf(" % s " ,sent[i]);

سویچ باید به صورت s% باشد نه s % :چشمک:
امیدوارم که مشکلتون حل شده باشد



در پناه حق موفق و کامروا باشید.

maryam safarzadeh
جمعه 27 آبان 1384, 18:13 عصر
امیدوارم این تابع بتونه کمکت کنه این برنامه دو رشته را می خواند و رشته دوم را در رشته اول جستجو می کند و شماره خانه آن را بر می گرداند.
int str_str(char str[],char str2[])
{
int j=0,t,k=0,o=0,h;
for (k=0;str[k];k++)
{
h=k+1; t=0;
if (str[k]==str2[0])
{
for (o=1;str2[o];o++,h++)
if (str[h]==str2[o])
t++;
if (t==o-1)
return(k);
}
}
}