آموزش تصویری برنامه نویسی ++C و C – کار بر روی رشته ها
در این فیلم آموزشی که ادامه فیلم آموزشی ” رشته های کاراکتری ” می باشد، کار بروی رشته ها بیشتر آموزش داده می شود و همچنین تابع های مهم برای کار بر روی رشته ها نیز ذکر می شود.
در زبان برنامهنویسی سی، یک رشته عبارتست از یک توالی پیوسته از کاراکترها که به یک کاراکتر تهی ختم میشوند. کاراکتر تهی (که به صورت ’\۰′ نوشته شده و دارای کد اسکی ۰ است) هم جزئی از رشته به حساب میآید. در سی دو نوع رشته وجود دارد. یکی رشته بایتی و دیگری رشته توسعهیافته. یک رشته بایتی از نوع char تعریف شده و دربرگیرنده کاراکترهای ۸ بیتی است. رشته توسعه یافته از نوع wchar_t تعریف شده و دربرگیرنده کاراکترهای ۱۶ بیتی است.
یک تصور اشتباه رایج این است که تمام آرایههای کاراکتری رشته هستند، چون لیترالهای رشته ای در هنگام کامپایل به آرایه تبدیل میشوند. این مهم است به یاد داشته باشید که یک رشته در هنگام رسیدن به اولین کاراکتر تهی (’\۰′) پایان مییابد. یک آرایه یا لیترال رشتهای که قبل از آخرین بایتش حاوی یک (یا چند) کاراکتر تهی است، دربرگیرنده یک رشته (یا در صورت امکان دربرگیرنده چندین رشته) است، اما خودش یک رشته نیست. در مقابل، میتوان یک آرایه کاراکتری ایجاد کرد که اصلاً حاوی کاراکتر تهی نیست و حتی به کاراکتر تهی هم ختم نمیشود، بنابراین این آرایه یک رشته نیست. زمانیکه احتیاج به صرفهجویی در حافظه باشد، میتوان از char به عنوان عدد صحیح استفاده کرد. برای مثال وقتی که احتیاج به آرایهای از مقادیر بولی داریم.
در زبان سی از عبارت اشاره گر به رشته برای توصیف اشارهگری که به اولین بایت (پایینترین آدرس) یک رشته اشاره میکند، استفاده میشود. در سی، از اشارهگرها برای ارسال رشتهها به توابع استفاده میشود. در مستندات اغلب واژه رشته به معنی اشارهگر به رشته است.
عبارت طول یک رشته برای توصیف تعداد بایتهایی که ماقبل کاراکتر تهی قرار دارند استفاده میشود. برای مثال طول رشته A بیست بایت است، به این معنیست که ۱۹ بایت (هر بایت یک کاراکتر) قبل از کاراکتر تهی قرار دارد و آدرس اولین بایت در اشارهگر A قرار دارد. (خود کاراکتر تهی هم جزء رشته به حساب میآید) strlen یک تابع استاندارد برای بدست آوردن طول یک رشته است.
اکثر توابع مرتبط با رشتهها در فایل سرآیند string.h تعریف شدهاند. (سرآیند cstring در سی++) توابع مربوط به رشتههای توسعه یافته هم در فایل wchar.h تعریف شدهاند. (سرآیند cwchar در سی++) این سرآیندها همچنین حاوی اعلانات توابعی هستند که برای مدیریت بافرهای حافظه مورد استفاده قرار میگیرند.
رشتههایی که در سرآیند string.h تعریف شدهاند بسیار محبوب هستند، از آنجا که آنها بخشی از توابع استاندارد سی به حساب میآیند، کارکرد آنها بر روی هر پلتفرمی که از سی پشتیبانی میکند تضمین شده است. با این حال برخی از این رشتهها مشکلات امنیتی مانند سرریز بافر دارند.
با تشکر فراوان از استاد “کیارش بازرگان ”
دانلود این فیلم آموزشیپیروزباشید، طراح باشی
پیروز باشید!
طراح باشی
نوشتن دیدگاه