• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

شبیه سازی دو تابع

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
دوستان این چند تا تابع از برنامه منه که قراره یک رشته رو در رشته دیگه حذف کنه منتها این کارو انجام نمیده قراره اینو با شبیه سازی strstr و strcmp بنویسیم و فقط از اشاره گر استفاده کنیم

کسی میتونه اشکالشو بگیره:

کد:
int stringcmp(char *s1,char *s2)
{char *m,*n;
 int i,l1,l2,j=0;
 m=s1; n=s2;
 l1=strlen(s1); l2=strlen(s2);
 for(i=0;i<l1;i++)
 {if(*m==*n)
  for(i=0;i<l2;i++)
  {if(*m==*n)
   {m++; n++; j++;}
   else break;}
  else m++;
 }
 if(j==l2)
  return (0);
 else return (NULL);
}
char* searchstr(char *s1,char *s2)
{int i=0,l1,l2;
 char *st1; char t[15];
 strcpy(st1,s1);
 l1=strlen(s1); l2=strlen(s2);
 while(i<=l1-l2)
 {strncpy(t,st1,l2);
  *(t+l2)='\0';
  if(stringcmp(t,s2)==0)
   return (st1);
  else
   st1++;
   i++;
 }//end of while
 return (NULL);
}
void del_str()
{char *m,*s2,*n;
 char i;
 int l1;
 printf("Enter the word you want to delete\n");
 gets(s2);
 l1=strlen(s2);
 n=searchstr(string,s2);
 if(n!='\0')
 while(*(n+i)!='\0')
 {*(n+i)=*(n+l1+i);
  i++;
 }
 else printf("Unknown word\n");
 puts(string);
 menu();
 getch();
}

در ضمن تابع searchstr همون strstr و تابع stringcmp همون strcmp هست(مطمئنم تو یکی از دو تابع شبیه سازی اشکالی وجود داره)
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
هه هه عجب بهینه سازی که میگن همینه؟؟ :D
خیلی جالب شد دستت درد نکنه برای راهنمایی. کمک بزرگی بود
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
یه چیز دیگه این نول ه یا نال
اخه من خودم نال میخوندم تا توی درس استادمون گفت نول منم گفتم حتما یه چیزی میدونه دیگه و دیگه دنبالش نرفتم
حالا کدومه؟
 

bloody

کاربر فعال علم و دانش
کاربر فعال
تاریخ عضویت
19 آپریل 2007
نوشته‌ها
1,256
لایک‌ها
17
محل سکونت
IRAN
تا جایی که من میدونم نال(NULL)به معنی صفر وتهی هست ولی نول رو بیشتر برای برق و این چیزا به کار میبرن میگن فاز و نول!!!نشنیدی؟
فکر کنم اون استاده مال مدار یا چیز مشابهی بوده!
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
با عرض معذرت یه سوال دیگه :blush: چه طوری میتونم حافظه c رو در مد بزرگ بگیرم ؟ کدش چیه ؟
 

Arash_j13

Registered User
تاریخ عضویت
18 فوریه 2005
نوشته‌ها
778
لایک‌ها
2
محل سکونت
مشهد
من الان کامپایلر 16 بیتی ندارم ولی توی قسمت تنطیمات کامپایلر می تونید memory model رو پیدا کنید و برابر large قرار بدید
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
یه سوال دیگه با عرض معذرت
چه جوری میتونم قدر مطلق چیزی رو بگیرم؟؟
 

bloody

کاربر فعال علم و دانش
کاربر فعال
تاریخ عضویت
19 آپریل 2007
نوشته‌ها
1,256
لایک‌ها
17
محل سکونت
IRAN
باید stdlib.h رو اضافه کنی و از تابع abs(x)استفاده کنی البته فکر کنم اعداد اعشاری رو که حساب میکنه مقدار اعشاری رو در نظر نمیگیره.
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
دست هر دو تون درد نکنه خیلی زحمت کشیدین
 
بالا