شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش مبانی برنامه نویسی - کاراکترها

اگر کار با اعداد در برنامه‌نویسی کامپیوتر آسان باشد، کار با کاراکترها به‌شدت آسان‌تر است. کاراکترها حروف ساده مانند a، b، c، d...، A، B، C، D... هستند، با این تفاوت که در برنامه‌نویسی کامپیوتر، هر عدد یک رقمی مانند 0، 1، 2... و نویسه‌های خاص مانند $، %، +، - و غیره نیز به‌عنوان کاراکتر در‌نظر گرفته می‌شوند و برای اختصاص دادن آن‌ها به‌متغیر نوع کاراکتر، شما فقط باید آن‌ها را درون نقل قول‌های تکی قرار دهید. به‌عنوان مثال، این دستور ساده، متغیر نوع کاراکتر ch را تعریف می‌کند و مقدار 'a' را به‌آن اختصاص می‌دهد −

char ch = 'a';

در اینجا، ch یک متغیر از نوع کاراکتر است که می‌تواند یک کاراکتر از مجموعه‌کاراکترهای پیاده‌سازی را نگه‌داری کند و 'a' یک حرف ثابت یا ثابت کاراکتر است. نه تنها a، b، c و ...، بلکه هر عدد مانند 1، 2، 3 و ... یا هر نویسه خاصی مانند !، @، #، #، $ و ... که درون نقل قول‌های تکی قرار داده شوند، به‌عنوان یک حرف ثابت در‌نظر گرفته می‌شوند و می‌توانند به‌متغیر از نوع کاراکتر اختصاص داده شوند، پس دستور زیر یک دستور معتبر است −

char ch = '1';

یک نوع داده کاراکتر 8 بیت از حافظه را مصرف می‌کند که به‌معنای آن است که می‌توانید هر چیزی را در یک کاراکتر ذخیره کنید که مقدار ASCII آن بین -127 تا 127 باشد، بنابراین می‌تواند هر یک از 256 مقدار مختلف را نگه‌داری کند. نوع داده کاراکتر می‌تواند هر یک از کاراکترهای موجود در صفحه کلید شما را شامل کاراکترهای خاصی مانند !، @، #، #، $، %، ^، &، *، (، )، _، +، {، } و غیره نگه‌داری کند.

لطفا توجه کنید که تنها می‌توانید یک حرف یا یک عدد را درون نقل قول‌های تکی قرار دهید و بیشتر از یک حرف یا عدد مجاز نیستند. بنابراین دستورات زیر در برنامه‌نویسی C نامعتبر هستند −

char ch1 = 'ab';
char ch2 = '10';

در زیر، مثال ساده ای آورده شده است که نحوه تعریف، اختصاص و چاپ کاراکترها را در زبان برنامه نویسی C نشان می دهد −

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = 'a';      
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';  

   printf( "ch1: %c\n", ch1);
   printf( "ch2: %c\n", ch2);
   printf( "ch3: %c\n", ch3);
   printf( "ch4: %c\n", ch4);
}

در اینجا، ما از %c برای چاپ نوع داده کاراکتر استفاده کردیم. هنگامی که برنامه بالا اجرا می شود، نتیجه زیر را تولید می کند −

ch1: a
ch2: 1
ch3: $
ch4: +

توالی‌های گریز(Escape Sequences)

بسیاری از زبان‌های برنامه‌نویسی از مفهومی به نام توالی گریز پشتیبانی می‌کنند. هنگامی که یک کاراکتر با یک خط‌پشت (\) پیش‌وند می‌شود، این عمل توالی گریز نامیده می‌شود و برای کامپایلر یک معنی خاص دارد. به عنوان مثال، \n در دستور زیر یک کاراکتر معتبر است و به عنوان کاراکتر خط جدید شناخته می‌شود −

char ch = '\n';

در اینجا، کاراکتر n با یک خط‌پشت (\) پیش‌وند شده است، این کاراکتر معنی خاصی به نام خط جدید دارد، اما به‌خاطر داشته باشید که خط‌پشت (\) تنها با چند کاراکتر معنی خاص دارد. دستور زیر هیچ معنی خاصی در برنامه‌نویسی C نخواهد داشت و به عنوان یک دستور نامعتبر در‌نظر گرفته خواهد شد −

char ch = '\1';

در زیر جدولی از توالی‌های گریز موجود در زبان برنامه‌نویسی C آمده است −

توالی گریز شرح
\t درج یک تب در متن در این نقطه.
\b درج یک بک‌اسپیس در متن در این نقطه.
\n درج یک خط جدید در متن در این نقطه.
\r درج یک بازگشت خط در متن در این نقطه.
\f درج یک پیمایش فرم در متن در این نقطه.
\' درج یک کاراکتر نقل قول تکی در متن در این نقطه.
\" درج یک کاراکتر نقل قول دوتایی در متن در این نقطه.
\\ درج یک کاراکتر بک‌اسلش در متن در این نقطه.

مثال زیر نحوه تفسیر یک توالی گریز در یک عبارت چاپ را نشان می‌دهد −

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = '\t';      
   ch2 = '\n';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

زمانی که برنامه فوق الذکر اجرا می‌شود، نتیجه زیر را تولید می‌کند −

Test for tabspace     and a newline 
will start here

کاراکترها در جاوا

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

می‌توانید این برنامه را اجرا کرده و خروجی آن را ببینید، که باید با نتیجه تولید شده توسط مثال C بالا همانی باشد.

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;
   
      ch1 = 'a';      
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';  

      System.out.format( "ch1: %c\n", ch1);
      System.out.format( "ch2: %c\n", ch2);
      System.out.format( "ch3: %c\n", ch3);
      System.out.format( "ch4: %c\n", ch4);
   }
}

وقتی برنامه فوق الذکر اجرا می‌شود، خروجی زیر تولید می‌شود −

ch1:  a
ch2:  1
ch3:  $
ch4:  +

در جاوا نیز مانند آنچه در برنامه‌نویسی C استفاده کرده‌اید، دنباله‌های گریز (Escape Sequence) را پشتیبانی می‌کند.

کاراکترها در پایتون

پایتون هیچ نوع داده‌ی کاراکتری را پشتیبانی نمی‌کند، اما تمام کاراکترها به عنوان یک رشته (String)، که یک دنباله‌ی کاراکترهاست، برخورد می‌شوند. ما رشته‌ها را در یک درس جداگانه مطالعه خواهیم کرد. شما نیازی به هیچ ترتیب خاصی برای استفاده از یک کاراکتر تکی در پایتون ندارید.

برنامه‌ی معادل زیر به زبان پایتون نوشته شده است:

ch1 = 'a';      
ch2 = '1';
ch3 = '$';
ch4 = '+'; 

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

وقتی برنامه فوق الذکر اجرا می‌شود، خروجی زیر تولید می‌شود −

ch1:  a
ch2:  1
ch3:  $
ch4:  +

پایتون نیز به همان شیوه‌ای که در برنامه‌نویسی C از آن‌ها استفاده کرده‌اید، دنباله‌های گریز را پشتیبانی می‌کند.