آموزش آردوینودستورات آردوینو

رشته ها در برنامه نویسی برد های آردوینو (String)

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

نوع داده String

همه موارد زیر روش های معتبری برای رشته ها هستند.

char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";

شما میتوانید:

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.
  • آرایه ای از کاراکترها را بدون مقداردهی اولیه مانند Str1 ایجاد کنید.
  • آرایه ای از کاراکترها را اعلام کنید (با یک کاراکتر اضافی) و کامپایلر نویسه صفر مورد نیاز را اضافه می کند. (مانند Str2)
  • همچنین صریحاً کاراکتر null ،را به رشته اضافه کنید. (مانند Str3)
  • یک رشته در بین کوتیشن (“”) ایجاد کنید و اندازه آن را تعیین نکنید. (مانند Str4)
  • آرایه را با اندازه و رشته مورد نظر ایجاد کنید. (مانند Str5)
  • آرایه را مقداردهی کنید و فضای بیشتری برای یک رشته بزرگتر در نظر بگیرید (مانند Str6)

Null termination

به طور کلی ، رشته ها با یک کاراکتر null خاتمه می یابند (کد ASCII 0). این مسئله اجازه می دهد تا توابع (مانند Serial.print ()) تشخیص دهند که انتهای یک رشته کجاست. در غیر این صورت ، آنها خواندن بایت های بعدی حافظه را که در واقع بخشی از رشته نیستند را ادامه می دهند.

به این معنی که رشته شما باید فضای بیشتری برای یک کاراکتر بیشتر از متن مورد نظر شما داشته باشد. به همین دلیل Str2 و Str5 باید هشت کاراکتر باشند ، حتی اگر “arduino” تنها هفت کاراکتر باشد. آخرین موقعیت به طور خودکار با یک کاراکتر Null پر می شود. اندازه Str4 به طور خودکار به هشت کاراکتر درج میشود (یکی برای صفر اضافی). در Str3 ، صریحاً نویسه صفر (نوشته شده “0”) را خودمان آورده ایم.

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

کوتیشن های Single یا Double

رشته ها همیشه در داخل کوتیشن مضاعف (“Abc”) و نویسه ها همیشه در داخل کوتیشن های تک (‘A’) تعریف می شوند.

رشته های بلند

شما می توانید رشته های طولانی را زیر ایجاد کنید:

char myString[] = "This is the first line"
" this is the second line"
" etcetera";

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

در هنگام کار با مقادیر زیادی از متن ، مانند یک پروژه با نمایشگر LCD ، معمولاً تنظیم مجموعه ای از رشته ها راحت است. از آنجا که رشته ها خود آرایه هستند ، این در واقع نمونه ای از یک آرایه دو بعدی است.

در کد زیر ، ستاره بعد از نوع داده char یعنی “char*” نشان می دهد که این مجموعه ای از “اشاره گرها” است. همه نام های آرایه در واقع اشاره گر هستند ، بنابراین برای ایجاد آرایه ای از آرایه ها این مورد لازم است.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

کد ایجاد رشته دو بعدی در آردوینو

char *myStrings[] = {"This is string 1", "This is string 2", "This is string 3",
                     "This is string 4", "This is string 5", "This is string 6"
                    }; 
void setup() { 
  Serial.begin(9600);
 } 
void loop() {
  for (int i = 0; i < 6; i++) {
    Serial.println(myStrings[i]);
    delay(500);
  }
 }

ورژن جدید String()

تابع String() نمونه ای از کلاس رشته را می سازد. نسخه های مختلفی وجود دارد که رشته ها را از انواع مختلف داده می سازد (به عنوان مثال آنها را به صورت توالی کاراکتر ها قالب بندی می کنید) ، از جمله:

  • یک رشته ثابت از کاراکترها ، به صورت “irenx” (به عنوان مثال یک آرایه char)
  • یک کاراکتر تک، در نقل قول های منفرد مثلا : ‘a’
  • یک عدد صحیح integer یا یک عدد صحیح long است.
  • یک عدد صحیح integer یا یک عدد صحیح long با استفاده از یک پایه مشخص
  • یک متغیر عدد صحیح integer یا عدد صحیح long است.
  • یک متغیر عدد صحیح integer یا عدد صحیح long ، با استفاده از یک پایه مشخص شده است
  • float یا double ، با استفاده از نقطه اعشار مشخص شده است

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

String thisString = String(13);

رشته “13” را به شما می دهد. با این حال می توانید از پایه های دیگر استفاده کنید. مثلا،

String thisString = String(13, HEX);

رشته “D” را به شما می دهد ، که نمایانگر هگزادسیمال مقدار اعشاری 13 است. یا اگر باینری را ترجیح می دهید ،

String thisString = String(13, BIN);

رشته “1101” را به شما می دهد که نمایش دودویی 13 است.

استفاده از String()

String(val)
String(val, base)
String(val, decimalPlaces)

  • val: متغیری است که به صورت String قالب بندی می شود. انواع داده مجاز: string ، char ، byte ، int ، long، int unsigned ، unsigned  long، float ، double.
  • base: (اختیاری است) پایه ای که در آن یک مقدار انتگرال قالب بندی می شود.
  • decimalPlaces: فقط اگر مقدار float یا double باشد قرار گیری نقطه ممیز را تعیین میکند.

کد نمونه

String stringOne = "Hello String"; // استفاده از رشته ثابت
String stringOne = String('a'); // تبدیل کاراکتر ساده به رشته
String stringTwo = String("This is a string"); // تبدیل رشته ساده به رشته شیئ
String stringOne = String(stringTwo + " with more"); // اتصال دو رشته
String stringOne = String(13); // استفاده از عدد صحیح ثابت
String stringOne = String(analogRead(0), DEC); // استفاده از عدد صحیح با پایه دسیمال
String stringOne = String(45, HEX); // استفاده از عدد صحیح و پایه هگزادسیمال
String stringOne = String(255, BIN); // استفاده از عدد صحیح و پایه باینری
String stringOne = String(millis(), DEC); // استفاده از داده long و دسیمال
String stringOne = String(5.698, 3); // استفاده از داده float و تعیین ممیز

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *