string در آردوینو

blog
۱۳۹۶-۰۳-۳۱
2 دقیقه

رشته‌های متنی به دو روش نمایش داده می‌شوند: می‌توانید از نوع‌داده‌ی string در آردوینو استفاده کنید که بخشی از هسته‌ی ورژن 0019 است و یا با آرایه‌ای از نوع char که به null ختم می‌شود، رشته را درست کنید. در این صفحه، روش دوم توضیح داده می‌شود. برای مشاهده‌ی توضیحات شیء string در آردوینو، که به شما عملکرد بهتر در ازای حافظه‌ی بیشتر می‌دهد، به صفحه شیء string مراجعه کنید.

مثال‌ها:

همه‌ی مثال‌های زیر، برای تعریف (اعلان) string، معتبر هستند:

راه‌های تعریف string:

– تعریف یک آرایه از نوع char بدون مقداردهی اولیه (Str1).

– تعریف یک آرایه از نوع char (با یک جای خالی) که خود کامپایلر کاراکترِ null موردنیاز را اضافه خواهد کرد (Str2).

– تعریف یک آرایه از نوع char با افزودن کاراکتر null به‌صراحت در انتها (Str3).

-مقداردهی اولیه با یک ثابت رشته‌ای در علامت کوتیشن. کامپایلر اندازه‌ی آرایه را طوری تعیین خواهد کرد که بتواند ثابت رشته‌ای به همراه کاراکتر null را در خود جای دهد (Str4).

-مقداردهی اولیه به آرایه با اندازه‌ای مشخص و ثابت رشته‌ای (Str5).

-مقداردهی اولیه به آرایه به همراه فضای بیشتر برای رشته‌هایی با طول بیشتر (Str6).

ختم‌ کننده‌ی null

به‌طور‌کلی رشته‌ها به کاراکتر null (کد اسکی 0) ختم می‌شوند. null به توابعی مثل ()Serial.print اعلام می‌کند که انتهای رشته کجاست. وگرنه این نوع توابع بیت‌هایی از حافظه که جز رشته نیستند را نیز خواهند خواند. به دلیل وجود همین کاراکتر null است که رشته‌ها به یک خانه‌ی اضافی، علاوه بر طول مقدارشان، برای ذخیره null نیاز خواهند داشت. به همین خاطر است که گرچه “arduino” هفت کاراکتر است اما Str2 و Str5 باید 8 کاراکتری باشند (خانه‌ی آخر رشته به‌صورت خودکار با null پر خواهد شد). اندازه‌ی Str4 نیز خودکار 8 کاراکتر خواهد شد؛ یکی اضافه‌تر برای ذخیره‌ی null. در Str3 ما خودمان کاراکتر null را صریحاً اضافه کرده‌ایم (با نوشتن ‘\0’).

توجه کنید که می‌شود رشته‌ای بدون null ختم‌ کننده داشت (برای مثال اگر طول Str2 را به جای 8 کاراکتر، 7 کاراکتر در نظر بگیرید). اما این‌ کار عملکرد بسیاری از توابعی که با رشته کار می‌کنند را نادرست می‌کند؛ پس نباید  عمداً این کار را انجام داد. اگر متوجه رفتاری عجیب (هنگام عملیات روی کاراکترها، نه رشته‌ها) شدید، ممکن است علت، همین کار باشد.

تک کوتیشن یا دابل کوتیشن؟

رشته‌ها همیشه درون دابل کوتیشن (“abc”) و کاراکترها همیشه درون تک کوتیشن (‘a’) تعریف می‌شوند.

شکستن و ذخیره‌ی رشته‌های طولانی

می‌توانیم رشته‌های طولانی را با این روش بشکنیم و ذخیره کنیم:

 

آرایه‌ای از رشته‌ها:

هنگام کار با برنامه‌هایی که دارای حجم زیادی از متن هستند (مانند پروژه‌ با نمایشگر LCD)، معمولا راحت است که آرایه‌ای از رشته را تعریف کنیم. از آنجا که رشته‌ها خود آرایه هستند، این کار در واقع مثالی از آرایه‌های دو بعدی است.

در کد زیر (*char)، علامت * بعد از نوع‌داده‌ی char، نشان‌دهنده‌ی این است که این، آرایه‌ای از اشاره‌گرها است. تمامی نامِ آرایه‌ها در واقع اشاره‌گر هستند؛ پس برای ساخت آرایه‌ای از آرایه‌ها، این کار لازم است. مبحث اشاره‌گرها برای مبتدیان در زبان C، کمی مبهم و سخت است؛ اما در اینجا برای استفاده‌ی موثر از اشاره‌گرها، نیازی به فهم دقیق آن‌ها نیست.

مثال:

 

 

اشاره‌گر در آردوینو

اطلاعات
5
0
لینک و اشتراک
profile

Yalda

متخصص الکترونیک

علاقه‌مند به یادگیری چیزهای جدید!

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
sajad گفت :
۱۳۹۷-۰۵-۲۲ ۱۳:۳۸

سلام.
من یه کدی دارم.
میخام بگم قبل از ویرگول رو بریز توی متغیر X و بعد از ویرگول رو بریز تو متغیر Y.
نمیدونم باید چه کدی براش بنویسم اگه راهنمایی کنید ممنون میشم.

profile
زئوس Zeus گفت :
۱۳۹۷-۰۵-۲۲ ۱۹:۵۲

خیلی ساده است
String input = "123;456";
String firstVal, secondVal;

for (int i = 0; i < input.length(); i++) { if (input.substring(i, i+1) == ";") { firstVal = input.substring(0, i); secondVal = input.substring(i+1); break; } }

profile
sajad گفت :
۱۳۹۷-۰۵-۲۲ ۱۳:۳۴

سلام خسته نباشید
من یه کدی دارم میخام بگم مثلا قبل از ویرگول را داخل متغیر x بریز و بعد ویرگول را داخل متغیر y بریز.
یه راهنمایی میکنید که چطور باید این کارو انجام بدم؟
ممنون میشم.

profile
Cozmo گفت :
۱۳۹۷-۰۵-۱۹ ۱۴:۵۴

سلام
مشکل چیه که متغیر string تو ide آردوینو ارور میده؟
نمیشناسه اصلن
رنگی نمیشه نوع متغیر 🙁

profile
زئوس Zeus گفت :
۱۳۹۷-۰۵-۲۰ ۲۱:۰۳

سلام
دوست عزیز ، String رو با اس بزرگ بنویسید مثل زیر
String 🙂

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله