استرینگ در برنامه نویسی چیست؟ — مفهوم رشته یا String به زبان ساده
در این مقاله به طور جامع به این سوال پاسخ داده میشود که استرینگ در برنامه نویسی چیست. به طور خلاصه، در برنامه نویسی استرینگ (String) یا همان رشته توالی از کاراکترها است که به عنوان نوعی از متغیرها (Variable) در برنامه نویسی مورد استفاده قرار میگیرد. در این مقاله ابتدا به شرح مفهوم استرینگ و انواع نمایش استرینگها پرداخته میشود. سپس، برای درک بهتر استرینگ در برنامه نویسی، نحوه اعلان و پیادهسازی آن با استفاده از زبانهای C، جاوا، پایتون و C++ نشان داده شده است.
استرینگ در برنامه نویسی چیست ؟
استرینگ در برنامه نویسی آرایهای از کاراکترها به حساب میآید. نمای غیر فنی استرینگ یک عبارت یا جمله است. رشته یک نوع داده (Data Typte) در برنامه نویسی به حساب میآید که توالی از کاراکترها، کلمات، عبارتها و سایر موارد را تشکیل میدهد.
رشتهها معمولاً برای انتقال اطلاعات از برنامه به کاربر استفاده میشوند و بسیار حائز اهمیت هستند، اما برای انتقال اطلاعات از برنامه به کامپیوتر اهمیت کمتری دارند. طول استرینگ در برنامه نویسی ممکن است که تغییر کند و یا حتی پس از ایجاد شدن آن در کدها به متغیری ثابت تبدیل شود.
رشتهها مجموعهای از کاراکترها هستند و نیازی نیست که حتما مانند جملات و عبارات معنی خاصی داشته باشند، برای مثال «Hello World» و «LKJH019283» هر دو رشته به حساب میآیند. بنابراین باید به این نکته نیز توجه داشت که به جز حروف، اعداد، فاصله (Space) و سایر موارد نیز میتوانند جزئی از استرینگها در برنامه نویسی باشند. در ادامه شبه کدی برای چاپ یک رشته نشان داده شده است:
$example = "Example of a string"; print "Example variable = $example";
در مثال فوق، به متغیر example$ مقدار Example of a string اختصاص داده شده است. سپس در خط دوم کدها، Example variable = $example هنگام اجرای اسکریپت چاپ میشود.
استرینگ در برنامه نویسی اغلب به عنوان یک ساختمان داده پیادهسازی میشود که آرایهای از بایتها (Byte) است یا کلمات و توالی از عناصر یا کاراکترها را ذخیره میکند. این کاراکترها میتوانند با استفاده از رمزگذاری (Encoding) نیز ذخیره شوند. تخصیص حافظه برای نوع داده استرینگ در برنامه نویسی، بسته به زبان برنامه نویسی و نوع دقیق داده، تفاوت دارد. ممکن است تخصیص حافظه به صورت ایستا (ثابت) با حداکثر طول رشته از پیش تعیین شده مشخص شود یا از تخصیص حافظه پویا برای استرینگها استفاده شده باشد.
بیشتر دادهها در برنامه نویسی از نوع متغیرهای Integer (عدد صحیح)، String و سایر موارد پیچیدهتر هستند. زبانهای برنامه نویسی رویکردهای پیچیدهتری برای توسعه و نمایش این نوع از دادهها دارند. برای مثال یک نوع داده پیچیده به صورت آرایه اولین چیزی است که دانشجویان با آن مواجه میشوند. آرایه توالی از مجموعه عناصر با یک نوع داده با نامی واحد است.
تعریف جمله قبل مفهوم نوع داده استرینگ را در برنامه نویسی به خوبی بیان میکند. سادهترین نوع آرایه به عنوان آرایه یک بعدی (One Dimensional Array) شناخته شده است، همچنین به عنوان یک لیست نیز در نظر گرفته میشود زیرا معمولاً اعضا و عناصر در برنامه نویسی به صورت عمودی لیست شدهاند. با این حال، میتوان گفت که استرینگها به عنوان آرایه تک بعدی مصورسازی شده به صورت افقی شناخته میشوند. رشتهها آرایهای از نوع دادههای کاراکتری هستند.
برای مثال در زبان برنامه نویسی C همه رشتهها به صورت آرایهای از کاراکترها هستند که به یک کاراکتر ASCII Null ختم میشوند. این رویکرد برنامه نویسان را ملزم به پردازش دستی طول رشته و مدیریت ذخیرهسازی رشته میکند. سر ریز بافر (Buffer Overflow | Buffer Overrun) نوعی ناهنجاری یا استثناء است که در یک برنامه رخ میدهد و دادهها از مرز در نظر گرفته شده برای بافر بیشتر میشوند و در مکانهای حافظههای مجاور بازنویسی میشوند.
اکثر زبانهای برنامه نویسی امروزی رشتهها را به عنوان نوع داده یا کلاس ذخیرهسازی میکنند و معمولاً در آنها رشتهها آرایهای با طول کنترل شده، هستند. طول و ذخیرهسازی استرینگ در برنامه نویسی به وسیله کامپایلر (Compiler) یا مفسر (Interpreter) مدیریت میشود و خطاهای برنامه را کاهش میدهد. در جدول زیر برخی از زبانهای برنامه نویسی همراه با کلمه کلیدی آنها برای تعریف استرینگ مشخص شده است:
زبان برنامه نویسی | کلمه کلیدی برای تعریف استرینگ |
++C | string |
#C | String |
جاوا | String |
جاوا اسکریپت (JavaScript) | String |
پایتون | ()str |
سوئیفت (Swift) | String |
بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به انواع دادههای String در برنامه نویسی اختصاص داده شده است.
نوع داده استرینگ در برنامه نویسی چیست ؟
نوع داده استرینگ ( String Data Type)، نوع دادهای است که بر اساس مفهوم توالی ساختار یافته ایجاد شده است. رشتهها در برنامه نویسی فرمی از دادههای مؤثر و ضروری هستند که تقریباً در همه زبانهای برنامه نویسی وجود دارند. استرینگها در برخی از زبانهای برنامه نویسی به عنوان نوع داده اصلی شناخته میشوند و در برخی دیگر به عنوان نوع داده ترکیبی در نظر گرفته میشوند.
ساختار بسیاری از زبانهای سطح بالا (High-Level) این امکان را به وجود میآورد که رخداد یک نوع داده استرینگ به وسیله استرینگی تفسیر شود که معمولاً به صورت خاصی به آن ارجاع داده میشود. به چنین فرارشتهای یک رشته نمادین یا لفظی (لیترال | Literal) میگویند.
طول استرینگ در برنامه نویسی چیست ؟
ممکن است رشتههای ساختار یافته در زبانهای برنامه نویسی طول ثابتی داشته باشند، اما معمولاً قوانین زبانهای برنامه نویسی اندازه استرینگ را به یک مقدار بیشینه موهومی محدود میکنند. علاوه بر این دو نوع داده استرینگ وجود دارد که در ادامه شرح داده شدهاند:
- رشتههایی با طول مشخص که حداکثر اندازه خاص آنها از قبل توسط برنامه تعیین شده است و از فضای ذخیرهسازی مخصوص به خود استفاده میکنند. ممکن است از همه فضای حداکثری استفاده شود یا حتی اصلاً از آن فضا استفاده نشود.
- رشتههایی وجود دارند که دارای اندازه محدود و ثابتی نیستند و ممکن است بر اساس پارامترها از فضاهای ذخیرهسازی گوناگونی در طول زمان اجرا استفاده کنند.
استرینگهای با طول برابر با متغیرها در برخی زبانهای برنامه نویسی انبوهی از توالیها به حساب میآیند. اگرچه رشتههایی با طول متغیر نیز میتوانند از نظر اندازه توسط حافظه قابل استفاده در برنامه محدود شوند. همچنین، طول استرینگ را میتوان به عنوان یک عدد صحیح متفاوت پردازش کرد. در بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به بررسی مفهوم رمزگذاری کاراکترها (Character Encoding) پرداخته شده است.
رمزگذاری کاراکترها برای استرینگ در برنامه نویسی چیست ؟
به طور پیشفرض برای نوع داده استرینگ در برنامه نویسی برای هر کاراکتر یک بایت در نظر گرفته میشود. این در حالی است که کاراکترهای واقعی بر اساس نوع آنها به فضاهای ذخیرهسازی مختلفی نیاز دارند. برای مثال کاراکترهای فریم زمان، ذخیرهسازی و ویرگول در یک مکان مشابه در همه کاراکترهای یونیکد (Unicode) ممکن است وجود داشته باشند. این نوع از کاراکترها بر اساس ASCII یا EBCDIC هستند. هنگامی که یک پیام از اصول رمزگذاری در فرآیند استفاده میکند، معمولاً پیام تغییر شکل میدهد. برخی از کاربران میتوانند این نوع از پیامهای تغییر شده داده را بخوانند. یونیکد یک نوع تصویر فشرده شده است.
خیلی از زبانهای برنامه نویسی دارای نوع داده یونیکد هستند. در اکثر زبانهای برنامه نویسی مدل مرجع انتخاب شده از یونیکد «UTF-8» در نظر گرفته میشود که مسائل بیان شده قبلی را برای کاراکترهای چند بایتی قدیمی یونیکد نداشته باشد. یونیکدهای UTF-8 ،UTF-16 و UTF-32 به توسعه دهندگان این قابلیت را میدهند که متوجه شوند تقسیمبندیهای فضای برنامه با طولهای از پیش تعریف شده برای کاراکترها متفاوت است. با این حال، مسئله اصلی ضعف APIهایی است که برای پوشش این وجه تمایز مورد استفاده قرار میگیرند. یعنی نوع داده رشته به گونهای در هر مؤلفه ساختمان داده آرایه ذخیره شود که گویی اندازه همه کاراکترها یکسان است. بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به پیادهسازی استرینگ در برنامه نویسی اختصاص داده شده است.
پیاده سازی استرینگ در برنامه نویسی چگونه است ؟
در بسیاری از زبانهای برنامه نویسی از جمله روبی (Ruby) و ++C مؤلفههای استرینگ بعد از توسعه میتوانند مجدداً بروزرسانی شوند، به این نوع از رشتهها، رشتههای «تغییرپذیر» (Mutable) گفته میشود. اگر مقداری که در برخی از زبانهای برنامه نویسی دیگر مانند جاوا و پایتون به استرینگ تعلق میگیرد تغییر پیدا کند، باید یک استرینگ جدید ایجاد شود و به این نوع از استرینگ در برنامه نویسی «توالیهای پایدار» (Permanent Sequence) گفته میشود.
برخی از انواع دیگر پیادهسازیهای قابل تغییر در رشتهها شامل استفاده از کلاس «StringBuilder» در جاوا و دات نت (NET.)، تابع Thread Safe در String Buffer جاوا و رشته قابل تغییر Cocoa NS هستند.
معمولاً Stringها در برنامه نویسی به عنوان توالی از بایتها، کاراکترها یا کدها پیکربندی میشوند تا امکان دسترسی آسان برای جدا کردن گروهها یا زیر رشتهها در آنها فراهم شود. فقط در صورتی که کاراکترهای رشته دارای اندازه محدودی باشند این اتفاق نمیافتد. همچنین، برخی از زبانهای برنامه نویسی مانند هسکل (Haskell) استرینگها را به عنوان پایگاه دادههای رابطهای (Relational Database) در نظر میگیرند. در بخش بعدی این مقاله به شرح نمایش استرینگ در برنامه نویسی پرداخته شده است.
نمایش استرینگ در برنامه نویسی چگونه است؟
نمایش String در برنامه نویسی به روشی برای نوشتن، ایجاد و نشان دادن رشتهها در برنامه گفته میشود که در هر زبان برنامه نویسی میتواند به صورت متفاوتی انجام شود. نمایش استرینگ به در دسترس بودن مجموعه متنها و سیستمهای رمزگذاری مرسوم در هر زبان برنامه نویسی وابسته است. پیادهسازیهای قبلی استرینگها به گونهای طراحی شده بودند که بتوانند با رمزگذاریها و کاتالوگهای تعریف شده به صورت اسکی یا با بههنگامسازیهای جدیدتری مثل توالی ISO 8859 کار کنند.
یونیکد در زمینه استرینگها همراه با مجموعه بزرگی از روشهای ضروری مانند UTF-8 و UTF-16، در قابلیتهای پیشرفته استفاده میشود. رشتههای بایتی نشان میدهند که بایتها ممکن است هر ورودی را بپذیرند، بنابراین هر اطلاعاتی را حفظ میکنند. در ادامه به بررسی برخی از انواع نمایشهای استرینگ در برنامه نویسی پرداخته میشود. ابتدا در بخش بعدی پس از معرفی فیلمهای آموزش برنامه نویسی تم آف، روش نمایش استرینگ در برنامه نویسی به صورت منتهی به بیت و بایت (Bit And Byte Terminated) شرح داده شده است.
در بخش بعدی مقاله، مجموعه دورههای آموزش برنامه نویسی تم آف به علاقهمندان معرفی میشوند.
معرفی فیلم های آموزش برنامه نویسی تم آف
دورههای آموزشی تم آف بر اساس موضوع به صورت مجموعههای آموزشی گوناگونی دستهبندی میشوند. یکی از این مجموعههای جامع مربوط به آموزشهای انواع زبانهای برنامه نویسی مختلف است. علاقهمندان میتوانند برای یادگیری بیشتر استرینگ در برنامه نویسی و زبانهای گوناگون، از این مجموعه آموزشی تم آف استفاده کنند. در زمان تدوین این مقاله، مجموعه دورههای برنامه نویسی تم آف حاوی بیش از ۴۵۲ ساعت محتوای ویدیویی و حدود ۵۰ عنوان آموزشی مختلف است. در ادامه، برخی از دورههای این مجموعه به طور خلاصه معرفی میشوند:
- فیلم آموزش برنامه نویسی جاوا Java (طول مدت: 19 ساعت و 19 دقیقه، مدرس: دکتر سید مصطفی کلامی هریس): این دوره آموزشی به آموزندگانی پیشنهاد میشود که قصد یادگیری زبان برنامه نویسی جاوا را از پایه و به صورت جامع داشته باشند. برای مشاهده فیلم آموزش برنامه نویسی جاوا Java + کلیک کنید.
- فیلم آموزش برنامه نویسی C (طول مدت: ۱۳ ساعت و ۳۰ دقیقه، مدرس: دکتر سید مصطفی کلامی هریس): در این تم آف، زبان برنامه نویسی C همراه با مفاهیم آن و به صورت عملی آموزش داده شده است. برای مشاهده فیلم آموزش برنامه نویسی C + کلیک کنید.
- فیلم آموزش برنامه نویسی پایتون Python – مقدماتی (طول مدت: ۱۹ ساعت و ۵۳ دقیقه، مدرس: پژمان اقبالی شمس آبادی): در این تم آف، زبان پایتون از پایهایترین مفاهیم مانند انواع دادههای آن آموزش داده شده است و تا جایی که امکان داشته همه مباحث مقدماتی مورد نیاز برای این زبان برنامه نویسی پوشش داده شدهاند. برای مشاهده فیلم آموزش برنامه نویسی پایتون Python – مقدماتی + کلیک کنید.
- فیلم آموزش برنامه نویسی متلب MATLAB (طول مدت: ۸ ساعت و ۵۸ دقیقه، مدرس: دکتر سید مصطفی کلامی هریس): در این دوره آموزشی، علاقهمندان و دانشجویان، مفاهیم گوناگون برنامه نویسی متلب را به طور جامع میآموزند. جهت مشاهده فیلم آموزش برنامه نویسی متلب MATLAB + کلیک کنید.
- فیلم آموزش جاوا اسکریپت JavaScript (طول مدت: ۹ ساعت و ۸ دقیقه، مدرس: محمد عبداللهی): این دوره آموزشی به علاقهمندانی پیشنهاد شده است که قصد یادگیری زبان برنامه نویسی جاوا اسکریپت را به طور جامع دارند. برای مشاهده فیلم آموزش جاوا اسکریپت + کلیک کنید.
- فیلم آموزش برنامه نویسی C++ سی پلاس پلاس (طول مدت: ۲۰ ساعت و ۱۴ دقیقه، مدرس: دکتر فرشید شیرافکن): در این تم آف، زبان برنامه نویسیC++ در دو بخش و از پایه آموزش داده شده است. برای مشاهده فیلم آموزش برنامه نویسی C++ سی پلاس پلاس + کلیک کنید.
حال، در بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به بررسی نمایش استرینگ در برنامه نویسی به صورت منتهی به بیت و بایت پرداخته میشود.
نمایش استرینگ در برنامه نویسی به صورت منتهی به بیت و بایت چیست؟
در برخی از نرم افزارها و سخت افزارهای کامپیوتر، استفاده از یک بایت مستقل غیر صفر برای پایان دادن به رشته وجود دارد. برخی از سیستمهای تعبیه شده از نماد «$» برای نشان دادن این بخش استفاده میکنند. سیستمهای CDC یا همان «Control Data Corporation» دارای کاراکتر با مقدار صفر هستند و در این نوع از نمایش استفاده میشوند. همچنین، سیستمهای ZX80 نیز در این نمایش مناسب هستند زیرا زیر رشته توالی در زبان «BASIC» ماشین دارند.
دستگاههای پردازش داده (Data Processing) از جمله IBM 1401 از یک بیت سرنام جدید برای معین کردن رشتهها در سمت چپ استفاده میکنند. در بیشتر بخشهای توالی این بیت باید به صورت صریح وجود داشته باشد. در بخش بعدی مقاله «استرینگ در برنامه نویسی» به نمایش استرینگ در برنامه نویسی به صورت منتهی به تهی (Null Terminated) پرداخته شده است.
نمایش استرینگ در برنامه نویسی به صورت منتهی به تهی چیست؟
با استفاده از یک کلمه خاص، توالی استرینگ در برنامه نویسی را میتوان به صورت ضمنی رمزگذاری کرد. این کاراکتر همیشه دارای ارزش صفر یا تهی است یعنی همه بیتهای آن دارای مقدار صفر هستند. از این استاندارد در زبان برنامه نویسی C استفاده میشود و هنوز هم این رویکرد تداوم دارد. از این روش معمولاً به عنوان یک رشته زبان C نیز یاد میشود. در روش نمایش استرینگ در برنامه نویسی به صورت منتهی به تهی از یک رشته n کاراکتری استفاده شده است اما n+1 به نظر میرسد و یک عدد برای پایان رشته مورد استفاده قرار میگیرد، بنابراین این روش نمایش ساختار دادهای ضمنی به حساب میآید.
معمولاً آخرین کاراکتر توالی استرینگ در هر نوع استرینگی، حرف قابل قبول و خاصی نیست. اما رشتههای میدان طولی (Length Field String) این محدودیت را ندارند و میتوانند حاوی اطلاعات دودویی (Binary) خاصی نیز باشند. در ادامه مثالی برای درک بهتر این نوع نمایش از رشته در برنامه نویسی ارائه شده است.
مثال نمایش استرینگ در برنامه نویسی به صورت منتهی به تهی
در این بخش مثالی برای درک بهتر نمایش استرینگ در برنامه نویسی به صورت منتهی به تهی ارائه و شرح داده شده است. در این مثال یک توالی با اعداد هگزادسیمال (Hexadecimal) ۸ بیتی در یک فریم ۱۰ بایتی همراه با عبارت اسکی (یا همان استاندارد UTF-8) به صورت زیر وجود دارد:
اندازه رشته مثال فوق که کلمه «DAVID» را نشان میدهد پنج است. اما به اندازه شش بایت فضا نیاز دارد. کاراکترهایی که پس از تهی نوشته شدهاند به عنوان مؤلفههای قابل تفسیر در این رشته در نظر گرفته نمیشوند. آنها میتوانند مؤلفههای داده دیگری و یا زباله باشند. رشتههایی با این نوع از نمایش پس از اعلان توسط زبانهای برنامه نویسی که از این روش استفاده میکنند به عنوان توالی «ASCIZ» شناخته میشوند. در بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به بررسی نمایش استرینگ در برنامه نویسی به صورت رشته به عنوان رکورد (String As A Record) پرداخته شده است.
نمایش استرینگ در برنامه نویسی به صورت رشته به عنوان رکورد چیست؟
بسیاری از زبانهای برنامه نویسی استرینگها را به صورت رکورد به وسیله برخی خواص ساختاری مانند مدلهای شی گرا (Object Oriented) ایجاد میکنند.
برای مثال، کدهای زیر روش نمایش رشته به عنوان رکورد در برنامه نویسی را نشان میدهد:
Class Str { size_p length; char *text; };
اگرچه معمولاً پیادهسازی رشتهها به صورت مخفی انجام میشوند، ویرایش و تغییر توالی استرینگ به وسیله اعضا متغیرها امری ضروری به حساب میآید. text ورودی به حافظه سیستمی اشاره دارد که میتواند در صورت لزوم گسترش پیدا کند. بخش بعدی مقاله «استرینگ در برنامه نویسی» به شرح نمایش استرینگ در برنامه نویسی با روش طول پیشوند (Length Prefixed) اختصاص دارد.
نمایش استرینگ در برنامه نویسی با روش طول پیشوند چیست؟
ذخیره طول رشته به صورت مستقیم در برنامه نویسی امکانپذیر است. برای مثال، این کار را میتوان با اضافه کردن اندازه رشته به عنوان مقدار بایت آن انجام داد. در چندین نسخه زبان برنامه نویسی پاسکال (Pascal) از این روش استفاده شده است.
به همین دلیل برخی از توسعه دهندگان نمایش رشته با روش طول پیشوند را رشته پاسکال یا «P-string» نیز مینامند. ذخیره اندازه رشتهها به عنوان مقدار بایتها حداکثر طول رشته را تا ۲۵۵ محدود میکند. نمایشهای پیشرفته استرینگهای پاسکال از عبارات ۱۶، ۳۲ یا ۶۴ بیتی برای حفظ اندازه رشته استفاده میکنند تا از محدودیتهای خاص جلوگیری شود. زمانی که طول آدرس فیزیکی به طول کامل دست پیدا کرد، فضای ذخیرهسازی رشتهها محدود میشوند.
اگر اندازه استرینگ در برنامه نویسی محدود باشد، میتوان آن را به وسیله ذخیرهسازی ثابت رمزگذاری کرد. معمولاً عبارات کامپیوتری منجر به ایجاد ساختمان داده ضمنی با استفاده از ذخیرهسازی n+k میشوند، در این تعریف k تعداد کاراکترهای متن به حساب میآید. برای مثال، ۸ کاراکتر در یک سیستم ۶۴ بیتی نشان دهنده ۸ بیت کد اسکی است. اگر اندازه حافظه محدود نباشد، رمزگذاری با اندازه استرینگ n به حافظهای با اندازه log(n) نیاز دارد. بنابراین توالیهایی با روش طول پیشوند، یک ساختمان داده کوچک هستند و استرینگی با اندازه n را در حافظه log(n) + n رمزگذاری میکنند.
هیچ اندازه ثابتی به تنهایی در فیلد اندازه پیشوند (Size Prefix) در وضعیت فوق وجود ندارد، اما با توسعه توالی، مقدار رشته باید به صورت جداگانه جابهجا شود تا تعداد توالی گسترش پیدا کند. برای مثال تصویر زیر یک رشته پاسکال شامل عبارات اسکی با نوع UTF-8 در یک بافر ۱۰ بایتی است:
در بخشهای بعدی مقاله «استرینگ در برنامه نویسی چیست» به بررسی ارائه، نمایش و پیادهسازی استرینگ در انواع زبانهای برنامه نویسی گوناگون پرداخته میشود. ابتدا، بخش بعدی به نمایش و پیادهسازی استرینگ در زبان برنامه نویسی C اختصاص دارد.
نمایش و پیاده سازی استرینگ در برنامه نویسی C چگونه است؟
در زبان برنامه نویسی C پارامترهای نوع کاراکتر نمیتوانند بیش از یک کاراکتر را دریافت کنند یعنی دو مثال ارائه شده در ادامه باعث ایجاد خطاهای نحوی میشوند. در مثال اول pq دو کاراکتر است و این خطا را ایجاد میکند و در مثال دوم عدد ۱۰۰ سه کاراکتر است.
در کل باید به این نکته نیز توجه داشت که میتوان اعداد را به عنوان کاراکترها ذخیره کرد ولی مانند حروف و کاراکترها ذخیره میشوند و دیگر دارای خاصیتی عددی نیستند و محاسبات روی آنها انجام نمیشود.
char c1 = "pq";
char c2 = "100";
همانطور که در بخشهای قبلی به آن اشاره شد، روش ذخیره استرینگ در برنامه نویسی به وسیله آرایهها بیشتر از هر نوع دیگری مورد استفاده قرار میگیرد. در مثال بعدی ساختار نحوی ذخیره و چاپ پنج رقم در یک توالی از نوع عدد صحیح مشخص میشود:
# include
# include
Main ()
{
int number [5] = {100, 200, 300, 400, 500};
int i = 0;
while (i
پس از اجرای موفقیتآمیز برنامه فوق، خروجی زیر نمایش داده میشود. همچنین به دلیل وجود «n» در تابع printf هر کاراکتر در یک خط چاپ شده است.
حال در مثال بعدی، مانند نمونه فوق چند کاراکتر در آرایهای قرار گرفتهاند و به جای اعداد با نوع داده کاراکتر یا همان استرینگ چاپ میشوند:
#include
main() {
char ch[5] = {'H', 'e', 'l', 'l', 'o'};
int i = 0;
while( i
در این برنامه باید به این نکته توجه داشت که برای چاپ کاراکترها در تابع printf از مقدار c% استفاده میشود. پس از کامپایل و پیادهسازی کدهای فوق، خروجی به صورت زیر نمایش داده میشود:
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
همانطور که در مثالهای فوق مشاهده شد، میتوان به این نتیجه رسید که رشتهها در زبان برنامه نویسی C همیشه به صورت آرایهای از کاراکترها نمایش داده میشوند. میتوان نوشتن و چاپ استرینگ را به صورت سادهتری در زبان C با روش زیر انجام داد:
#include
main() {
char ch[5] = "Hello";
int i = 0;
/* Print as a complete string */
printf("String = %sn", ch);
/* Print character by character */
while( i
در مثال فوق برای چاپ کامل رشته مورد نظر با نام آرایه ch از مقدار s% استفاده میشود. این مقدار دقیقاً در ابتدای آدرس حافظه متغیر ch قرار میگیرد. همانطور که در تصویر زیر نمایش داده شده است:
زبان برنامه نویسی C به صورت داخلی کاراکتر تهی 0 به عنوان آخرین کاراکتر هر رشته قرار میدهد، با این حال این موضوع در کدهای فوق مشخص نیست. این کاراکتر در تصویر فوق مشاهده میشود و در بخشهای قبلی نیز به آن پرداخته شد. این کاراکتر تهی پایان هر رشته را نشان میدهد، برای مثال اگر برنامه نویس قصد دارد رشته پنج کاراکتری ایجاد کند نیاز است که آن را در یک آرایه با اندازه شش ذخیره کند. در این آرایه هر کاراکتر حاوی یک آدرس (Address) و یک اندیس (Index) میشود. اگر مثال فوق کامپایل و پیادهسازی شود، خروجی آن به صورت زیر نمایش داده میشود:
String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o
طبق مثالهای ارائه شده فوق برخی از نکات پایه و اساسی جمعآوری شدند و در بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به آنها پرداخته شده است.
مفاهیم پایه استرینگ در برنامه نویسی C
بر اساس مفاهیم ارائه شده برای استرینگ در زبان برنامه نویسی C، نکات مهمی درباره رشته در این زبان برنامه نویسی جمعآوری شدهاند که در ادامه به شرح آنها پرداخته شده است:
- استرینگ در زبان برنامه نویسی C به عنوان آرایهای از کاراکترها نمایش داده میشود.
- میتوان با اختصاص کاراکتر به کاراکتر رشتهها به آرایهای از کاراکترها، یک رشته در برنامه نویسی C ساخت.
- میتوان با اختصاص یک رشته کامل در دو گیومه (“Hello”)، رشتهای در برنامهنویسی C به وجود آورد.
- میتوان یک رشته کاراکتر را با استفاده از یک آرایه رشته کامل به وسیله نام آرایه بدون نوشتن چیز دیگری چاپ کرد.
- آخرین کاراکتر هر رشته در زبان برنامه نویسی C یک کاراکتر تهی یعنی 0 است.
- اکثر زبانهای برنامه نویسی برای نمایش استرینگ از توابع داخلی از پیش ساخته شده خود استفاده میکنند. به عنوان مثال میتوان رشتهها را باهم ادغام کرد، در یک رشته جستجو انجام داد، زیر رشتهها (Sub String) را از یک رشته استخراج کرد و عملیات بسیار دیگری که در اکثر زبانهای برنامه نویسی انجام میشوند.
در بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به شرح نمایش و پیادهسازی استرینگ در زبان برنامه نویسی جاوا پرداخته شده است.
نمایش و پیاده سازی استرینگ در برنامه نویسی جاوا چگونه است؟
با اینکه در زبان برنامه نویسی جاوا نیز از آرایههای کاراکتر میتوان استفاده کرد، اما جاوا یک زبان پیشرفته است و طراحان آن سعی کردهاند قابلیتهای بیشتر و کاربردی از جمله قابلیتهایی برای تعریف استرینگ به آن اضافه کنند. جاوا تعریف رشتهها را به صورت یک نوع داده داخلی مانند انواع دادههای دیگر انجام میدهد.
این موضوع به این معنی است که میتوان رشتهها را مستقیماً و بدون نیاز به تعریف آنها به صورت آرایهای از کاراکترها تعریف کرد. در ادامه برنامهای برای تعریف نوع داده استرینگ در برنامه نویسی با زبان جاوا ارائه شده است. همانطور که مشاهده میشود جاوا از عملگر new برای ایجاد متغیرهای رشتهای استفاده میکند. میتوان با پیادهسازی این برنامه خروجی رشتهای آن را مشاهده کرد.
public class DemoJava {
public static void main(String []args) {
String str = new String("Hello");
System.out.println( "String = " + str );
}
}
زمانی که مثال فوق، اجرا شود. عبارت زیر در خروجی نمایش داده میشود:
String = Hello
در بخش بعدی مقاله «استرینگ در برنامه نویسی» به بررسی روش نمایش و پیادهسازی استرینگ در زبان برنامه نویسی پایتون پرداخته میشود.
نمایش و پیاده سازی استرینگ در برنامه نویسی پایتون چگونه است؟
ایجاد استرینگ در پایتون بسیار ساده است و با استفاده از علامت گیومه تکی یا دوتایی (کوتیشن یا دابل کوتیشن) میتوان استرینگی را به متغیر پایتون اختصاص داد.
در ادامه برای درک بهتر روش تعریف استرینگ در پایتون، مثالی ارائه میشود که در آن دو رشته ایجاد و با استفاده از تابع ()print چاپ میشوند.
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2
زمانی که برنامه فوق اجرا و پیادهسازی میشود، خروجی به صورت زیر به نمایش درمیآید:
var1 = Hello World! var2 = Python Programming
زبان پایتون از نوع داده کاراکتر پشتیبانی نمیکند. در این زبان کاراکترها به عنوان توالیهایی با اندازه طول یک در نظر گرفته میشوند که معمولاً به آنها زیر رشته میگویند. برای دسترسی به زیر رشتهها از براکتهایی ([ ]) در مقابل متغیر استفاده میشود و با استفاده از آن محدوده زیر رشته مورد نظر انتخاب خواهد شد.
رشتهها از عدد صفر به عنوان زیر رشتهها اندیسگذاری میشوند برای مثال در نمونه فوق اندیس [0] زیر رشته H را برمیگرداند و اگر این اندیسها به صورت [1:5] نوشته شوند به این معنی است که زیر رشتههای اندیسهای ۱ تا ۵ باید برگردانده و چاپ شوند. در ادامه با مثالی این موضوع به طور کامل بیان شده است:
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
پس از اجرا و پیادهسازی برنامه فوق، خروجی زیر مشاهده میشود:
var1[0]: H var2[1:5]: ytho
- مقاله پیشنهادی: ۲۲ ترفند پایتون برای کار با رشته ها — راهنمای کاربردی
بخش بعدی مقاله «استرینگ در برنامه نویسی چیست» به نمایش و پیادهسازی استرینگ در زبان برنامه نویسی ++C اختصاص داده میشود.
نمایش و پیاده سازی استرینگ در برنامه نویسی ++C چگونه است؟
زبان برنامه نویسی ++C دارای دو نمایش برای نشان دادن String در برنامه نویسی است که در ادامه به بررسی آنها پرداخته میشود:
- استرینگ کاراکتری «C-style»
- نوعی کلاس استرینگی معرفی شده با استانداردهای زبان برنامه نویسی ++C
ابتدا در بخش بعدی به شرح استرینگ کاراکتری «C-style» در زبان ++C پرداخته شده است.
استرینگ کاراکتری C-style در زبان برنامه نویسی ++C چیست؟
رشته کاراکترها C-style یا همان به سبک C همان روشی است که در زبان C استفاده میشد و همچنان در زبان ++C نیز پشتیبانی میشود. همانطور که پیش از این و در بخش نمایش استرینگ در زبان برنامه نویسی C شرح داده شد، این نوع از آرایه کاراکترها با کاراکتر تهی 0 خاتمه مییابند. بنابراین یک آرایه با پایان تهی شامل کاراکترهایی است که رشته را تشکیل میدهند. در مثال زیر رشتهای شامل کلمه Hello مقداردهی و اعلان میشود. همچنین، برای قرار دادن کاراکتر تهی در آخر آرایه رشته باید تعداد کاراکترها را یک رقم بیشتر از تعداد حروف کلمه Hello در نظر گرفت.
char greeting[6] = {'H', 'e', 'l', 'l', 'o', ' '};
همچنین میتوان از قانون مقداردهی اولیه آرایهها در این زبان برنامه نویسی استفاده کرد و مثال فوق را به صورت زیر نوشت:
char greeting[] = "Hello";
در واقع برنامه نویس کاراکتر تهی را در انتهای آرایه رشته قرار نمیدهد و کامپایلر ++C هنگامی که آرایه را مقداردهی اولیه میکند، خودش به طور خودکار مقدار تهی 0 را در انتهای آرایه قرار میدهد. برای چاپ رشته مثال فوق از برنامه زیر استفاده میشود:
#include
using namespace std;
int main () {
char greeting[6] = {'H', 'e', 'l', 'l', 'o', ' '};
cout
زمانی که کدهای فوق اجرا و پیادهسازی میشوند، خروجی زیر نمایش داده میشود:
Greeting message: Hello
زبان برنامه نویسی ++C دارای تعداد بسیاری تابع است که انواع عملیات را روی رشتههای با پایان تهی اعمال میکنند. برخی از این توابع در جدول زیر مشخص شدهاند.
نام تابع | عملیاتی که تابع انجام میدهد. |
;strcpy(s1, s2) | این تابع رشته s2 را در رشته s1 کپی میکند. |
;strcat(s1, s2) | این تابع رشته s2 را با آخر رشته s1 ادغام میکند. |
;strlen(s1) | این تابع طول رشته s1 را برمیگرداند. |
;strcmp(s1, s2) | اگر رشته s1 و s2 یکسان باشند، این تابع عدد صفر را برمیگرداند. همچنین اگر s1 |
;strchr(s1, ch) | این تابع یک اشارهگر (Pointer) را برای اولین پیشآمد کاراکتر ch در رشته s1 برمیگرداند. |
;strstr(s1, s2) | این تابع یک اشارهگر را برای اولین پیشآمد رشته s2 در رشته s1 برمیگرداند. |
در مثال زیر برای درک بهتر مفهوم توابع جدول فوق، استفاده برخی از این توابع نشان داده شده است:
#include
#include
using namespace std;
int main () {
char str1[10] = "Hello";
char str2[10] = "World";
char str3[10];
int len ;
// copy str1 into str3
strcpy( str3, str1);
cout
هنگامی که کدهای فوق کامپایل و اجرا شوند، خروجی به صورت زیر نشان داده میشود:
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10
در بخش بعدی نمایش و پیاده سازی استرینگ در زبان برنامه نویسی ++C به شرح نوعی کلاس استرینگی پرداخته میشود که با استانداردهای زبان ++C مطابقت دارد.
نوعی کلاس استرینگی معرفی شده با استانداردهای زبان برنامه نویسی ++C
کتابخانه استاندارد زبان ++C یک نوع کلاس استرینگی را ارائه میدهد که همه عملیات بیان شده فوق را پشتیبانی میکند. علاوه بر این، کاربردهای بسیار دیگری نیز دارد و در این روش از رویکردهای دیگری نیز پشتیبانی شده است.
مثال زیر برای درک بهتر این نوع کلاس استرینگی در زبان ++C ارائه میشود.
#include
#include
using namespace std;
int main () {
string str1 = "Hello";
string str2 = "World";
string str3;
int len ;
// copy str1 into str3
str3 = str1;
cout
پس از اجرا و پیادهسازی کدهای فوق، خروجی زیر نمایش داده میشود:
str3 : Hello
str1 + str2 : HelloWorld
str3.size() : 10
به این ترتیب، در مقاله «استرینگ در برنامه نویسی چیست» سعی شد تا حد امکان به طور جامع به آموزش و چیستی متغیر استرینگ و همچنین به مباحث پیرامون آن از جمله نوع تعریف و استفاده آن در زبانهای برنامه نویسی گوناگون پرداخته شود. اکنون در بخش پایانی این مقاله، برای آشنایی بیشتر و آموزش برنامه نویسی و نوع داده استرینگ، آن دسته از دورههای تم آف که بیشترین ارتباط را با استرینگ در برنامه نویسی دارند به علاقهمندان معرفی شده است.
معرفی فیلم های آموزش زبان های برنامه نویسی
در نهایت، در این بخش انتهایی مقاله «استرینگ در برنامه نویسی چیست» برای یادگیری بیشتر، تعدادی از دورههای آموزش برنامه نویسی تم آف به علاقهمندان معرفی شدهاند. مفهوم متغیر استرینگ و همچنین نحوه تعریف و فراخوانی آن در تمام این دورههای آموزشی شرح داده و تمرینهای عملی در آنها ارائه شده است. ابتدا به معرفی آموزش برنامه نویسی پایتون Python – مقدماتی پرداخته میشود.
فیلم آموزش برنامه نویسی پایتون Python – مقدماتی
در این تم آف همه مفاهیم و موضوعات مقدماتی و پایه زبان برنامه نویسی پایتون از جمله انواع دادهها در آن و استرینگ پوشش داده شده است. زبان پایتون یکی از پر طرفدارترین زبانهای برنامه نویسی در سطح جهان است. این زبان کاربردهای گستردهای دارد و با یادگیری آن میتوان در حوزههای گوناگون کامپیوتر فعالیت داشت. این دوره آموزشی برای علاقهمندان و افرادی پیشنهاد میشود که قصد شروع یادگیری پایتون را دارند. طول مدت این دوره آموزشی ۱۹ ساعت و ۵۳ دقیقه و مدرس آن مهندس پژمان اقبالی شمس آبادی است. همچنین، این تم آف پنج درس را شامل میشود. از جمله سرفصلهای این دوره میتوان به آشنایی با پایتون، ساختمان داده در پایتون، توابع و ماژولها، کلاس و سایر موارد اشاره کرد.
- برای مشاهده فیلم آموزش برنامه نویسی پایتون Python – مقدماتی + اینجا کلیک کنید.
فیلم آموزش مقدماتی برنامه نویسی سی شارپ C#
هدف این تم آف آموزش زبان برنامه نویسی C# از ابتداییترین مفاهیم مانند انواع دادهها تا پیشرفتهترین آنها است تا اگر شخصی هیچ آشنایی قبلی با این زبان برنامه نویسی نداشته باشد، با دیدن این آموزش، در کوتاهترین زمان ممکن، تبدیل به یک برنامه نویس خبره #C شود. بنابراین به دانشجویان و علاقهمندانی که قصد یادگیری این زبان برنامه نویسی را دارند، فیلم آموزش مقدماتی برنامه نویسی سی شارپ #C پیشنهاد میشود. طول مدت این دوره نزدیک به ۹ ساعت و مدرس آن وحید اسدزاده است. این دوره ۱۱ درس دارد که برخی از سرفصلهای آن شامل، مفاهیم اولیه سیشارپ، متغیرها، ثوابت، عبارتها، عملگرها و دستورات شرطی، حلقهها، آرایهها، متدها و کلاسها، پشتیبانگیری و بازیابی اطلاعات در سی شارپ، گرافیک در سی شارپ و سایر موارد است.
- برای مشاهده فیلم آموزش مقدماتی برنامه نویسی سی شارپ C# + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی جاوا Java
دوره آموزشی برنامه نویسی جاوای تم آف یک بسته کامل برای این زبان برنامه نویسی همه منظوره به حساب میآید و بسیاری از مباحث مهم آن را پوشش داده است. همچنین، انواع استرینگهای جاوا در این تم آف آموزش داده میشوند. طول مدت این دوره آموزشی نزدیک به ۲۰ ساعت و مدرس آن دکتر مصطفی کلامی هریس است. این دوره ۲۳ درس را در بر میگیرد. برخی از سرفصلهای مهم این دوره، آشنایی با جاوا و مباحث مقدماتی، ساختارهای کنترل و تکرار در جاوا، مبانی برنامه نویسی گرافیکی در جاوا، تعریف متدها و توابع در کلاسها و تولید اعداد تصادفی، چند ریختی یا Polymorphism در برنامه نویسی شی گرا، پاسخگویی به رویدادهای صفحه کلید، آشنایی با رفرنسهای تابعی در جاوا ۸ و پیادهسازی یک پروژه محاسباتی و سایر موارد را شامل میشوند.
- برای مشاهده فیلم آموزش برنامه نویسی جاوا Java + اینجا کلیک کنید.
فیلم آموزش جاوا اسکریپت JavaScript
جاوا اسکریپت یکی از مهمترین زبانهای برنامه نویسی در زمینه برنامه نویسی وب است و در وب سایتهای بسیاری از این زبان برنامه نویسی استفاده میشود. برای شروع یادگیری این زبان مهم میتوان از دوره آموزش جاوا اسکریپت تم آف استفاده کرد. طول مدت این دوره آموزشی تقریباً ۹ ساعت و مدرس آن مهندس محمد عبداللهی است. این دوره شامل ۲۳ درس میشود و معرفی انواع داده (Data Type) و عملگرها در جاوا اسکریپت، تعریف توابع، اشیا جاوا اسکریپت – شی رشته (String)، شی آرایه (Array)، کلاس RegExp یا Regular Expression (عبارات منظم یا باقاعده) و سایر موارد از جمله مباحث و سرفصلهای این دوره آموزشی به حساب میآیند.
- برای مشاهده فیلم آموزش جاوا اسکریپت JavaScript + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی C
در این دوره آموزشی همه مفاهیم برنامه نویسی C به صورت عملی و گام به گام برای پیاده سازی پروژههای برنامه نویسی معرفی شده است. از این رو، این تم آف نه تنها مباحث تئوری بلکه مباحث عملی را نیز به صورت جامع به علاقهمندان برنامه نویسی C آموزش میدهد. این دوره آموزشی حاوی حدود ۱۴ ساعت محتوای ویدیویی است و دکتر سید مصطفی کلامی هریس آن را تدریس میکند. این تم آف ۱۲ درس دارد که برخی از سرفصلهای آن شامل آشنایی با زبان برنامه نویسی C، ساختارهای کنترل برنامه در C، پیادهسازی و استفاده از توابع در C، کاراکترها و رشتهها در C، عملگرهای بیتی، فیلدهای بیتی و ثوابت نام دار و شمارشی (Enumeration) و سایر موارد میشوند.
- برای مشاهده فیلم آموزش برنامه نویسی C + اینجا کلیک کنید.
فیلم آموزش برنامه نویسی C++ سی پلاس پلاس
++C زبانی همه منظوره و عمومی است که در سطح وسیعی از علوم کامپیوتر مورد استفاده قرار میگیرد. اکثر نرم افزارهایی که به صورت روزمره در ویندوز استفاده میشوند توسط زبان مادر C و ++C نوشته شدهاند، همچنین این زبان برنامه نویسی در صنعت خودروسازی، معماری، بانک، کنسول بازی و سایر موارد نیز کاربرد دارد. در این دوره آموزشی زبانC++ در دو بخش معرفی دستورات و ساختمان داده و بیان مفاهیم شی گرایی آموزش داده میشود.
این تم آف توسط دکتر فرشید شیرافکن تدریس میشود و شامل حدود ۲۰ ساعت محتوای ویدیویی است. همچنین این دوره آموزشی ۱۰ درس دارد که برخی از آنها شامل انواع دادهها، انواع عملگرها، دستورات cin و cout، آرایه، رشته، نوع شمارشی، استراکچر، یونیون، فایل و سایر موارد میشوند.
- برای مشاهده فیلم آموزش برنامه نویسی C++ سی پلاس پلاس + اینجا کلیک کنید.
جمع بندی
با توجه به اینکه زبانهای برنامه نویسی در عصر ارتباطات وظیفهای مهم و حیاتی برای سازمانها و کسب و کارها به حساب میآیند، یادگیری زبان برنامه نویسی و همه بخشهای آن مانند استرینگ در برنامه نویسی مسئله مهمی به شمار میرود.
در این مقاله سوال استرینگ در برنامه نویسی چیست، مورد بررسی قرار گرفت و به آن پاسخ داده شد. همچنین، سعی شد به روش تعریف و مقداردهی متغیرها در چند زبان برنامه نویسی از جمله C، جاوا، پایتون و ++C به طور کامل پرداخته شود. در نهایت برخی از فیلمهای آموزش زبانهای برنامه نویسی گوناگون نیز برای علاقهمندان به یادگیری بیشتر زبانهای برنامه نویسی معرفی شدند.