ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
View previous topic :: View next topic
Author
Message
unknown مدير بخش ويژوال بيسيك Joined: 05 Dec 2004 Posts: 439 Location: Tehran
Posted: Sat Jan 15, 2005 10:56 am Post subject: جواب تمرینات c
سلام
من چند تا از تمرین ها رو حل کردم. امیدوارم کمکتون کنه
نکته:
البته متاسفانه هنوز نتونستم تابع strstr رو بنویسم .اگر نوشتم حتما میزارم تو سایت...
اون سوال آخر رو هم دارم روش کار میکنم (ساختمان)
پیشنهاد میکنم این برنامه رو توی c اجرا کنید تا خروجی هر تابع رو ببینید
من برای اطمینان از درستی توابع خودم
توابع c رو هم فراخوانی کردم
موفق باشید...
/*
Developed by Amir
1383/10/26
*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
int mystrlen1(char []);
int mystrlen2(char *);
void mystrcpy1(char [],char []);
void mystrcpy2(char *,char *);
void mystrcat1(char [],char []);
char *mystrchr(char *,char);
char *mystrrchr(char *,char);
int mystrcmp(char [],char []);
main(){
char str1[]="Amir";
char str2[]="Computer";
char str3[]="new";
char str4[]=" Moradabadi";
char str5[]="I like the c language.";
char str6[]="Reza";
char str7[]="Ali";
char ch='l';
int res,myres;
clrscr();
printf(" (str1=%s)(str2=%s)(str3=%s)(str4=%s)",str1,str2,str3,str4);
printf("\n strlen (%s) = %d",str1,strlen(str1));
printf("\n Mystrlen1 (%s) = %d",str1,mystrlen1(str1));
printf("\n Mystrlen2 (%s) = %d",str1,mystrlen2(str1));
printf("\n");
strcpy(str2,str3);
printf("\n strcpy(str2,str3) new str2 = %s",str2);
mystrcpy1(str2,str3);
printf("\n Mystrcpy1(str2,str3) new str2 = %s",str2);
mystrcpy2(str2,str3);
printf("\n Mystrcpy2(str2,str3) new str2 = %s",str2);
printf("\n");
strcat(str1,str4);
printf("\n strcat(str1,str4) new str1 = %s",str1);
mystrcat1(str1,str4);
printf("\n Mystrcat1(str1,str4) new str1 = %s",str1);
printf("\n");
printf("\n (str5=%s)",str5);
printf("\n Searching for '%c' in the str5",ch);
if (mystrchr(str5,ch))
printf("\n The first '%c' was found at address %d where index =%d",ch,mystrchr(str5,ch),mystrchr(str5,ch)-str5);
else
printf("\n The '%c' was not found at this string (strchr)",ch );
if (mystrrchr(str5,ch))
printf("\n The last '%c' was found at address %d where index =%d",ch,mystrrchr(str5,ch),mystrrchr(str5,ch)-str5);
else
printf("\n The '%c' was not found at this string (strrchr)",ch );
printf("\n");
printf("\n (str6=%s) (str7=%s)",str6,str7);
res=strcmp(str6,str7);
if (res>0)
printf("\n strcmp = str6 > str7");
else if(res<0)
printf("\n strcmp = str6 < str7");
else
printf("\n strcmp = str6 = str7");
myres=mystrcmp(str6,str7);
if (myres>0)
printf("\n Mystrcmp = str6 > str7");
else if(myres<0)
printf("\n Mystrcmp = str6 < str7");
else
printf("\n Mystrcmp = str6 = str7");
getch();
return 0;
}
/************************************Functions******************************/
int mystrlen1(char list[])
{
int i,count=0;
for(i=0;list[i];i++)
count++;
return count;
}
//---------------------------------------------------------
int mystrlen2(char *list)
{
int count=0;
while(*list)
{
count++;
list++;
}
return count;
}
//---------------------------------------------------------
void mystrcpy1(char str1[],char str2[])
{
int i;
for(i=0;str2[i];i++)
str1[i]=str2[i];
str1[i]='\0';
return;
}
//---------------------------------------------------------
void mystrcpy2(char *str1,char *str2)
{
while(*str2)
{
*str1=*str2;
str1++;
str2++;
}
*str1='\0';
return;
}
//---------------------------------------------------------
void mystrcat1(char s1[],char s2[])
{
int i,j,k;
for(i=0;s1[i];i++);
for(j=i,k=0;s2[k];j++,k++)
s1[j]=s2[k];
s1[j]='\0';
return;
}
//---------------------------------------------------------
char *mystrchr(char *str,char ch)
{
while(*str)
{
if(*str==ch)
return str;
str++;
}
return 0;
}
//---------------------------------------------------------
char *mystrrchr(char *str,char ch)
{
int *temp=0;
while(*str)
{
if(*str==ch)
{
temp=str;
}
str++;
}
return temp;
}
//---------------------------------------------------------
int mystrcmp(char s1[],char s2[])
{
int i;
for(i=0;s1[i];i++)
{
if(s1[i]>s2[i])
return +1;
else if(s1[i]<s2[i])
return -1;
else
continue;
}
return 0;
}
Last edited by unknown on Tue Feb 01, 2005 4:31 pm; edited 1 time in total
Back to top
unknown مدير بخش ويژوال بيسيك Joined: 05 Dec 2004 Posts: 439 Location: Tehran
Posted: Sat Jan 15, 2005 11:04 am Post subject:
متاسفانه چون text box فارسی بود کد نیز راست چین شد.
شما میتوانید کد را کپی کنید و در notepad با پسوند c.
ذخیره کنید بعد از c آن فایل رو باز کنید
Back to top
Amir مدير مباحث عمومي سايت Joined: 30 Nov 2004 Posts: 1088 Location: Age Hammam Nabasham To Lebasamam
Posted: Sat Jan 15, 2005 1:08 pm Post subject:
مرسي اقا.
من كه از چيز هايي كه بالا نوشتي، فقط فهميدم كه اون آبيه ايميله! همين.
اگه ميذاشتي توي قسمت كد ها همه چيز درست نشون داده ميشد. الان هم ميتوني اديتش كني.
Back to top
vahid بي تو هرگز Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
Posted: Sat Jan 15, 2005 5:51 pm Post subject:
امير جان دستت درد نكنه همونطوري كه امير جان گفت امير جان كدهايي كه انگليسي ميزني رو سلكت كن و دكمه code رو توي اديتور بزن .
كه من اين دفعه رو انجام دادم
دستت درد نكنه ...
Back to top
arash مدير بخش سي Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
Posted: Sat Jan 15, 2005 6:38 pm Post subject:
ممنون امیر جان
بازم کاری داشتم مزاحم بشم ؟؟؟
Back to top
vahid بي تو هرگز Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
Posted: Sat Jan 15, 2005 8:38 pm Post subject:
چه عجب آق آرش ! راه گم كردي داداش !
Back to top
vahid بي تو هرگز Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
Back to top
unknown مدير بخش ويژوال بيسيك Joined: 05 Dec 2004 Posts: 439 Location: Tehran
Posted: Mon Jan 17, 2005 7:52 am Post subject:
وحید جون ممنون
کلی حال دادی
Back to top
arash مدير بخش سي Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
Posted: Mon Jan 17, 2005 8:12 am Post subject:
سلام به همه بچه های باحال
آقا وحید سلام
امیر جان سلام
می خواستم بگم برنامه ات رو اجرا کردم ولی در انتهای برنامه یعنی بعد از ()getch خطا زمان اجرا میده .
در ضمن برنامه هایی رو که امیر آقا زحمت کشیدن رو به صورت پاس کردن آدرس به جای کل آرایه نوشتم که این شکلی شد
#include<stdio.h>
#include<conio.h>
void cpy(char*,char*);
main()
{
char s1[200],s2[200];
clrscr();
printf("\n\n\n Enter s1 :");
gets(s1);
printf("\n\n\n Enter s2 :");
gets(s2);
cpy(s1,s2);
printf("\n\n s1 = %s \n\n s2 = %s \n",s1,s2);
printf("\n\n\n\n\n \t\t www.parsx.com \n");
getch();
return 0;
}
void cpy(char *s1,char *s2)
{
int i=0;
for(i=0;*(s2+i);*(s1+i)=*(s2+i),i++);
*(s1+i)='\0';
return;
}
#include<stdio.h>
#include<conio.h>
void cat(char*,char*);
main()
{
char s1[200],s2[200];
clrscr();
printf("\n\n\n Enter s1 :");
gets(s1);
printf("\n\n\n Enter s2 :");
gets(s2);
cat(s1,s2);
printf("\n\n strcat(s1,s2) = %s \n",s1);
printf("\n\n\n\n\n \t\t www.parsx.com \n");
getch();
return 0;
}
void cat(char *s1,char *s2)
{
int i=0,j=0;
for(i=0;*(s1+i);i++);
for(;*(s2+j);*(s1+i)=*(s2+j),i++,j++);
*(s1+i)='\0';
return;
}
ولی جالب ترین برنامه strchr که اندیس اولین وقوع یک کاراکتر در یک رشته رو بر می گردونه و اون رو به صورت بازگشتی نوشتم اینجوری شد
#include<stdio.h>
#include<conio.h>
char* schr(char*,char);
main()
{
char s1[200],ch,*ptr;
clrscr();
printf("\n\n\n Enter s1 :");
gets(s1);
printf("\n\n\n Enter a character :");
ch=getche();
ptr=schr(s1,ch);
if(ptr)
printf("\n\n strchar(s1,ch) = %d \n",(ptr-s1)+1);
printf("\n\n\n\n\n \t\t www.parsx.com \n");
getch();
return 0;
}
char* schr(char *s1,char ch)
{
if(*s1)
{
if(*s1!=ch)return schr(++s1,ch);
return(s1);
}
printf("\n\n Not found this char !!!");
return 0;
}
Last edited by arash on Mon Jan 17, 2005 9:03 am; edited 1 time in total
Back to top
vahid بي تو هرگز Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
Posted: Mon Jan 17, 2005 8:41 am Post subject:
دستت درد نكنه ...
Back to top
arash مدير بخش سي Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
Posted: Mon Jan 17, 2005 9:08 am Post subject:
به قول امیر خیلی چاکریم !!!
Back to top
vahid بي تو هرگز Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
Posted: Mon Jan 17, 2005 11:09 am Post subject:
آرش تو چرا انقدر بازگشت داري !!! هميشه به جلو برو دلبندم !
جدا تو بازگشتي حرف نداري آرش ...
Back to top
Mahnazz مهمون يكي دو روزه Joined: 04 Dec 2004 Posts: 10
Posted: Mon Jan 17, 2005 11:15 am Post subject:
دستتون درد نكنه امير جان و باقي دوستان
جدا به اين برنامه ها احتياج داشتم ...
Back to top
arash مدير بخش سي Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
Posted: Mon Jan 17, 2005 3:10 pm Post subject:
ما همیشه کوچیک برو بچز parsx.com هستیم .
و کوچیک برو بچز بامرای مثل شما .
هر چی بلدم هر چی دارم از دیگرانه پس آفرین به همه .
Back to top
unknown مدير بخش ويژوال بيسيك Joined: 05 Dec 2004 Posts: 439 Location: Tehran
Posted: Mon Jan 17, 2005 7:23 pm Post subject:
آقا چاکریم.....
آرش یواش یواش داره خودشو نشون میده.
امیدوارم هممون امتحان رو خوب بدیم.
بازم چاکریم.....
Back to top
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
s
Powered by phpBB © 2001, 2010 phpBB Group
آمار