آخرین اخبار و مقالات و مطالب پیرامون کامپایلر در ایران آی سی تی نیوز ، پایگاه فناوری اطلاعات و ارتباطات ایران

بر روی این دامنه اینترنتی

سیستم مدیریت محتوا

پارس

سی ام اس

نصب شده است که نرم افزاری قوی جهت

طراحی سایت

می باشد.

طراحی وب

با استفاده از

پرتال

(

پورتال

) پارس منجر به

طراحی وب سایت

شما می شود.

طراحی وب سایت

کپی رایت

پورتال

پارس

اسپاگتی با طعم استاندارد

دو هفته پیش درباره مفهوم رشته ها توضیح دادیم، حال قصد داریم توابع کار با رشته ها که در کتابخانه استاندارد c وجود دارد را با هم بررسی کنیم و با آنها بیشتر آشنا بشویم.
این توابع در کتابخانه ای به نام string.h هستند، پس برای استفاده از آنها باید دستور زیر را در آغاز کدهای خود بنویسیم:
#include «string.h»
این دستور به کامپایلر می فهماند که برنامه ما از این کتابخانه استفاده کرده و برای کامپایل نیاز است این کتابخانه نیز بارگذاری شود. این توابع را به ترتیب بررسی می کنیم:
توابع ترکیب رشته ها
strcat: این تابع دو رشته را گرفته و به هم می چسباند و سپس نتیجه را به عنوان خروجی بر می گرداند.
تعریف تابع به صورت زیر است:
char * strcat ( char * destination, char * source );
strncat: این تابع دقیقا مثل تابع بالا رفتار می کند، با این تفاوت که به اندازه مشخصی از رشته دومی را به رشته اولی می چسباند. مثلا:
char str1[] = “jamejam”;
char str2[] = “online”;
strncat(str1,str2,2);
output » jamejamon
نحوه تعریف این تابع به صورت زیر است:
char * strncat (char * destination, char * source, size_t num);
اگر به جای num طول رشته دومی را بدهیم همان کار تابع بالا را انجام می دهد.
strcpy: این تابع یکی از توابع مهم در رشته هاست، این تابع یک رشته را در یک رشته دیگر کپی می کند.
نحوه تعریف این تابع به صورت زیر است:
char * strcpy ( char * destination, char * source );
strncpy: این تابع عملی شبیه به strncat برای strcat دارد، یعنی شما مقدار محدودی از یک رشته را در رشته دیگر کپی می کنید.
نحوه تعریف آن نیز مثل strncat است:
char * strncoy ( char * destination, char * source, size_t num );
strcmp: این تابع دو رشته را با هم مقایسه می کند و یک عدد صحیح را به عنوان خروجی برمی گرداند. اگر دو رشته با هم برابر باشند مقدار صفر را به عنوان خروجی برمی گرداند.
اگر دو رشته با هم متفاوت باشند همین که به اولین کاراکترهایی که مخالف هم هستند رسید آن کاراکتر در رشته دوم را با کاراکتر متناظر از رشته اول مقایسه می کند، اگر بزرگتر بود (کد اسکی دو کاراکتر با هم مقایسه می شوند) عدد ?- و اگر کوچکتر بود ? را برمی گرداند. تابع به صورت زیر تعریف شده است:
int strcmp ( const char * str1, const char * str2 );
strncmp: این تابع نیز مانند باقی توابع دارای n یک مقدار مشخص از یک رشته را با رشته دیگر مقایسه می کند و نحوه تعریف آن به صورت زیر است:
int strncmp ( const char * str1, const char * str2, size_t num );
در استفاده از تمامی توابع بالا جهت حصول از اطمینان از عملکرد توابع پیشنهاد می شود از تعریف دوم تابع استفاده کنید مثلا strncat به جای strcat، استفاده از این توابع باعث می شود امنیت کد شما بیشتر باشد (درباره خطای overflow پیشتر توضیح داده شده است، همین طور در مقاله دو هفته پیش در مورد رشته ها).
strchr: این تابع محل یک کاراکتر را مشخص می کند. نحوه تعریف این تابع به صورت زیر است:
char * strchr (char * str, int character );
این تابع یک رشته و کد اسکی یک کاراکتر را می گیرد یا یک کاراکتر را گرفته و در رشته اول دنبال اولین محل رخداد کاراکتر داده شده می گردد، سپس باقی رشته را از آن محل به صورت خروجی بر می گرداند. به عنوان مثال:
char str1[] = “jamejam”;
char* find;
find = strchr(str1,’m’);
puts(find);
output » mejam
برای این که ببینیم یک کاراکتر در یک رشته چندبار تکرار شده است، باید آن را در یک حلقه قرار دهیم و هر بار تابع strchr را اجرا کنیم، به صورت زیر:
find=strchr(str1,’m’);
while (find!=null) {
printf (“found at %d\n”,find-str1+1);
find=strchr(find+1,’s’);
}
strtok: این تابع 2 رشته را به عنوان ورودی دریافت می کند و سپس رشته اول را بر اساس رشته دوم که نقش جداکننده دارد جدا می کند. به طور مثال رشته this is test را گرفته و رشته “ “(فاصله) را نیز به عنوان ورودی می گیرد و سپس this را بر می گرداند. اگر بخواهیم کل رشته را با استفاده از جداکننده جدا کنیم باید آن را در یک حلقه به صورت زیر فراخوانی کنیم:
char str[] = “this is a test”;
char * find;
find=strtok(str,” “);
while (find!=null) {
puts(find);
find=strtok(find+1,” “);
}
strlen: این تابع یکی از اساسی ترین توابع در کتابخانه string.h است، این تابع طول رشته را برمی گرداند.
همان طور که گفته شد رشته ها با \0 یا کاراکتری که کد اسکی آن صفر است خاتمه پیدا می کنند.
به عنوان تمرین انتظار می رود که خوانند گان توابع بالا را خودشان بنویسند، به طور مثال تابع strlen را می توان به صورت زیر نوشت:
int _strlen(char* str) {
int index = 0;
while(str[++index]!=0);
return index;
}
برای آشنایی بیشتر با این توابع به نشانی زیر بروید:
http://www.cplusplus.com/reference/clibrary/cstring/
امیربهاءالدین سبط الشیخ


به سوی امنیت

... افزونه ssp در کامپایلر gcc از زمان نگارش 1/4 به این برنامه اضافه شد ... گفتنی است که در نگارش بعدی جنتو و کامپایلر gcc، این قابلیت آزموده و فعال شده است و احتمالا در به روز رسانی بعدی gcc به سیستم اضافه شود ...

منبع : جام جم آنلاین    تاریخ : 28   شهریور   1389   شاخه : امنیت   


کوچک ترین پولساز جهان

... هم اکنون نیز نرم افزارهایی که با زبان جاوا نوشته می شوند، با وجود کامپایلر خود می توانند روی هر سیستمی اجرا شوند و به نوعی میان افزار هستند ...

منبع : جام جم آنلاین    تاریخ : 31   مرداد   1389   شاخه : موبایل   


ادوبی در برابر اپل – آیا قوانین ضد انحصار به کمک ادوبی می آیند؟

... درست چند روز پیش از معرفی محصولات جدید ادوبی توسط این کمپانی، کمپانی اپل تغییراتی را در مجوز استفاده از کیت توسعه نرم افزار (sdk) مربوط به سیستم عامل آیفون اعمال نمود که استفاده از ابزارهایی مشابه کامپایلر برنامه flash professional cs5 را برای تولید کد بومی برنامه های نسخه چهارم سیستم عامل آیفون ممنوع می کند ...

منبع : وین بتا    تاریخ : 15   اردیبهشت   1389   شاخه : شرکت ها   


درخت های لینوکسی

... * مسیر (/usr/include): فایل های سرآیند (header) که برای کامپایلر c استفاده می شود ...

منبع : جام جم آنلاین    تاریخ : 18   بهمن   1388   شاخه : نرم افزار   


نرم افزار proteus professional v7.6

... 6- سازگاری با انواع زبان های اسمبلی- سازگاری کامل با انواع میکروکنترولر ها- شناسایی و به روز رسانی آخرین قطعات و مدارات روز دنیا- هماهنگی کامل نرم افزار برای آزمایش کدهای نوشته شده در زبان اسمبلی - وجود بیش از 8000 قطعه الکترونیکی در نرم افزار- استفاده آسان از نرم افزار - امکان پرینت مدارات- قابلیت ذخیره سازی به صورت عکس- خطایاب بسیار کامل نرم افزار- سازگار با بیشتر کامپایلر ها و اسمبلرها ...

منبع : بازیاب    تاریخ : 2   دی   1388   شاخه : نرم افزار   


مهارت های برنامه نویسی

... کامپیوترها به معنای واقعی کلمه نادان هستند و نمی توانید سه چهارم برنامه را بنویسید و بعد به آن بگویید: «خودت که می دانی منظورم چیست؟» و انتظار داشته باشید کامپایلر بقیه کارها را بکند ... اما باید قوانین کامپایلر را بدانید و از دستورهای خودکار آن باخبر شوید ...

منبع : جام جم آنلاین    تاریخ : 29   آذر   1388   شاخه : برنامه نویسی   


برنامه نویس جایزالخطاست!

... ولی در حالت بدون اشکال زدا یا عرضه (release) فایل شامل سیمبل ها فعال نخواهد شد و گزینه های بهینه سازی کامپایلر فعال می شوند و از نظر حجم فایل ایجاد شده کوچک تر از فایل اصلی خواهد بود و سرعت اجرا شدن در این دو حالت در بعضی از الگوریتم ها تفاوت زیادی خواهند داشت ...

منبع : جام جم آنلاین    تاریخ : 22   آذر   1388   شاخه : برنامه نویسی   


گوگل منبع باز را انتخاب کرد

... علاوه بر موارد بالا، گوگل همچنین اعلام کرده است که یک کامپایلر به نام closure compiler نیز عرضه شده است، این کامپایلر که یک ابزار فشرده سازی و بهینه سازی جاوا اسکریپت است، ویژگی های پیشرفته ای دارد ... علاوه بر بهینه سازی و فشرده سازی، این کامپایلر می تواند کد پایه را نیز تحلیل کند و خطاهای خاصی از برنامه را به طور خودکار تشخیص دهد ... این کامپایلر همانند کتابخانه نیز تحت مجوز آپاچی منتشر شده است ... این کامپایلر که به زبان جاوا پیاده شده است، می تواند از طریق خط فرمان مورد استفاده قرار بگیرد و یا این که از طریق رابط کاربری تحت وبی که گوگل ایجاد کرده است، کنترل شود ... همچنین برای استفاده دینامیک و برنامه نویسی شده از یک کامپایلر سروری، یک api به طریق rest موجود است ... کامپایلر کلوژر نیز به سرعت جای پای خودش را به عنوان یک ابزار فشرده ساز برتر محکم خواهد کرد ...

منبع : جام جم آنلاین    تاریخ : 1   آذر   1388   شاخه : نرم افزار   


بازی بزرگان

... به طور مثال، در زبان c بزرگ ترین حافظه ای که برای ذخیره سازی داده ها استفاده می شود، برابر با 8 بایت است که این مقدار در کامپایلر anci c به 10 بایت افزایش پیدا کرده است ...

منبع : جام جم آنلاین    تاریخ : 1   آذر   1388   شاخه : برنامه نویسی   

صفحه 1
2 3 4


طراحی وب سایت

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player