رشته ها. نمای کلی

رشته لیستی (یا دنباله ای) از کاراکترها به ترتیب خاص است. کل دنباله شخصیت ها به عنوان یک موجودیت واحد در نظر گرفته می شود.

کاراکتر هر چیزی است که شما می توانید با یک ضربه کلید روی صفحه کلید تایپ کنید (حرف، عدد، بک اسلش یا نویسه دیگری).
رشته ها می توانند دارای فاصله باشند: "سلام دنیا!".
رشته خالی رشته ای است که 0 کاراکتر دارد.
پاسکال هر چیزی را که به صورت آپستروف نوشته شده است (' ') به عنوان رشته تشخیص می دهد.
در پاسکال، یک رشته از نوع string است.

شما می توانید با استفاده از دستور ورودی یک مقدار جدید برای یک رشته بنویسید <پیش> read(s); همچنین می توانید به سادگی یک مقدار رشته به متغیر اختصاص دهید، مانند   <پیش> s := 'پایتون'; شما می توانید طول یک رشته را با استفاده از تابع داخلی length تعیین کنید <پیش> n := طول(ها)


مقایسه رشته

رشته ها را می توان مانند اعداد با یکدیگر مقایسه کرد. شما می توانید تعیین کنید که کدام یک از خطوط بزرگتر و کدامیک کمتر است.

هنگام مقایسه رشته‌ها، کدهای کاراکتر مقایسه می‌شوند. ده‌ها، اگر نه صدها، رمزگذاری کاراکتر وجود دارد. ساده ترین راه برای درک این مفهوم، درک یکی از ساده ترین ها، ASCII است ( اینجا را بخوانید).   ;
درک این نکته ضروری است که در رمزگذاری های مدرن، حروف روسی و انگلیسی هر دو به ترتیب حروف الفبا مرتب می شوند، اعداد نیز از کوچکتر به بزرگتر می شوند. 
به عنوان مثال، در جدول کد ASCII، کد حرف انگلیسی 'A' - 65، حروف 'a' - 97، رقم '0' دارای کد 48. حروف روسی در قسمت توسعه یافته جدول کد ASCII (اعداد از 128 تا 255) قرار دارند. حروف بزرگ جلوتر از حروف کوچک می آیند (یعنی کد کوچکتری دارند).
در اکثر جداول رمزگذاری استفاده شده، الگوها یکسان هستند، حروف کوچک دیرتر از حروف بزرگ، اعداد زودتر از حروف و حروف روسی دیرتر از انگلیسی هستند.

به عنوان مثال: "لوکوموتیو"  &آن؛ "کشتی بخار"، زیرا کلمات در حرف پنجم و "در" متفاوت هستند. &آن؛ "x".

متأسفانه، هیچ تابعی در پاسکال وجود ندارد که بتواند چندین خط جدا شده از یک خط را بخواند. برای انجام این کار، باید تابع خود را بنویسید: <پیش> vars، w: رشته; i, j, ind: integer; الف: آرایه رشته؛ شروع readln(ها)؛ selength(a, length(s)); من := 1; ind := 0; در حالی که من < طول (ها) انجام دادن شروع در حالی که (i < طول(ها)) و ('' + s[i] = ' ') i += 1; j := i + 1; w := '' + s[i]; در حالی که (j < طول(ها)) و ('' +s[j] <> ' ') شروع می شوند w += s[j]; j += 1; پایان؛ a[ind] := w; ind += 1; i := j; پایان؛ نوشتن (a[0]، a[1]); پایان.

در نتیجه، آرایه‌ای از رشته‌ها را دریافت می‌کنیم.

رشته ها را می توان با استفاده از علامت "+" به هم اضافه کرد. این عملیات الحاق رشته یا پیوند نامیده می شود. 
به عنوان مثال،  <پیش> s := 'سلام، '; s1 := 'جهان'; writeln(s + s1); روی صفحه عبارت "Hello world" (بدون نقل قول).

ارجاع به شاخص های ردیف
هر کاراکتر یک رشته دارای شماره مخصوص به خود است (به نام index) و نمایه سازی در زبان برنامه نویسی پاسکال از یک شروع می شود. یعنی کاراکتر اول دارای شاخص 1، کاراکتر دوم دارای شاخص 2 و ... است.
کاراکترهای رشته را می توان با نمایه هایی که در کروشه های مربع نشان داده شده اند دسترسی داشت.
s[i]  
مثال 
<بدن>
رشته S H e l l o
شاخص S[1] S[2] S[3] S[4] S[5]

P.S. بسیاری از روش های رشته ای در PascalABC.NET فرض می کنند که رشته ها از صفر ایندکس می شوند. ما در حال حاضر از روش های رشته ای که با شاخص های مبتنی بر صفر کار می کنند استفاده نخواهیم کرد. جایگزین‌های معادلی برای این توابع با توابع خارجی وجود دارد که فرض می‌کنند ردیف‌ها از 1 ایندکس شده‌اند. 
 

از آنجایی که یک کاراکتر توسط شاخص قابل دسترسی است، می‌توانید از یک حلقه متغیر برای تکرار روی همه کاراکترها استفاده کنید که مقادیر شاخص ممکن را به خود می‌گیرد. به عنوان مثال، برنامه ای که تمام کدهای کاراکتر رشته s را نمایش می دهد به این شکل است <پیش> برای i := 1 به طول(ها) انجام می دهد writeln(s[i]، or(s[i])) توضیحات برنامه:
1) تابع length(s) طول یک رشته را پیدا می کند. شاخص اولین کاراکتر 1 و شاخص آخرین کاراکتر طول(ها) است. متغیر حلقه i فقط مقادیری از 1 تا طول (ها) می گیرد.
2) در هر خط ابتدا خود نماد و سپس کد آن نمایش داده می شود که توسط تابع داخلی ord()
برگردانده می شود.
همین شمارش را می توان کوتاهتر نوشت: <پیش> برای c in s انجام      writeln(c, ord(c)); در این قطعه، هدر حلقه از میان تمام کاراکترهای s حلقه زده و آنها را به نوبه خود در متغیر c قرار می دهد.

ویژگی پاسکال هنگام کار با رشته ها این است که رشته ها اشیاء قابل تغییر هستند. به عبارت دیگر، می‌توانیم کاراکترهای تکی یک رشته را تغییر دهیم.
به عنوان مثال، عبارت زیر کار خواهد کرد <پیش> s[5] := 'a'; همچنین می توانید یک رشته جدید از کاراکترها با تغییرات لازم بسازید.
به عنوان مثال، برنامه ای که جایگزین همه کاراکترهای 'a' به شخصیت های 'b' به این صورت خواهد بود: <پیش> می خواند)؛     برای i := 1 تا طول (ها) شروع می شود         اگر s[i] = 'a'پس s[i] := 'b';     پایان؛ writeln(s); در این مثال، تمام کاراکترهای رشته s را حلقه می کنیم. در بدنه حلقه، مقدار متغیر s[i] را بررسی می کنیم: اگر کاراکتر با کاراکتر 'a' مطابقت داشته باشد، آن را با 'b' جایگزین می کنیم.