سرفایل string.h


این سرفایل شامل بسیاری از توابع پر کاربرد برای رشته ها می باشد.

انتساب رشته ها  (strcpy  (s1 , s2

مقایسه دو رشته (strcmp (s1 , s2

الحاق دو رشته   (strcat   (s1 , s2

انتساب رشته ها


انتساب رشته ها به معنی کپی کردن یک رشته در رشته دیگر است . با استفاده از عملگر = نمی توان رشته را انتساب کرد. یعنی اگر s1 و s2 آرایه هایی کاراکتری (رشته) باشند, استفاده از دستور زیر نادرست است:

s1 = “sahand”;

s2=s1;

برای کپی کردن رشته ای در رشته دیگر و یا انتساب رشته ای به رشته دیگر از تابع ()strcpy استفاده می شود. این تابع در سرفایل string.h قرار دارد و به صورت زیر بکار می رود:

strcpy (str1 , str2);

str2 می تواند رشته ای از کاراکتر ها (مانند “sahand”) و یا یک متغیر رشته ای باشد. با اجرای این دستور ,مقادیری که در str2 قرار دارند در str1 کپی می شوند.

اگر طول str2 بیش از طول str1 باشد, تا جایی که عمل کپی کردن امکان پذیر باشد ,عمل کپی در آن رشته صورت می گیرد و کاراکتر های اضافی بلافاصله پس از str1 قرار می گیرند. در نتیجه , اگر متغیرهایی بعد از str1 قرار داشته باشند, محتویات آن ها از بین خواهد رفت.

مقایسه رشته ها


اگر بخواهیم دو متغیر صحیح x و y را با هم مقایسه کنید, از دستور (if (x == y استفاده می کنیم. اما برای مقایسه دو رشته s1 و s2 نمی توان از (if (s1 == s2 استفاده کرد.برای مقایسه رشته ها از تابع ()strcmp استفاده می شود. این تابع به صورت زیر به کار می رود

:

strcmp(s1 , s2)

حاصل کار این تابع یک عدد است که مقدار آن بیانگر وضعیت دو رشته نسبت به هم است .اگر عدد بر گردانده شده توسط تابع:

  • برابر با صفر باشد , s1 =s2 می باشد.
  • منفی باشد , s1
  • مثبت باشد , s1>s2 می باشد.

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

الحاق دو رشته


الحاق کردن دو رشته به معنی قرار دادن یک رشته در انتهای رشته دیگر است. برای مثال اگر s1 برابر با “sahand” و s2 برابر با “university” باشد , الحاق s2 به انتهای s1 می شود تا s1 حاوی رشته “sahand university”  شود. تابع ()strcat برای الحاق دو رشته به صورت زیر به کار می رود:

strcat( s1 , s2 );

با این دستور , s2 در انتهای رشته s1 قرار می گیرد. s2 می تواند متغیر رشته ای و یا رشته ای دلخواه باشد.s1 همواره متغیری رشته ای (آرایه کاراکتری) است. چنانچه طول رشته s1 طوری باشد که گنجایش s2 را نداشته باشد , بقیه رشته s2 در ادامه رشته s1 قرار می گیرد و در نتیجه چنانچه متغیرهایی بعد از s1 وجود داشته باشند , محتویات آن ها از بین می رود.

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


در مواردی که می خواهیم تعداد زیادی رشته را تعریف کرده و مورد استفاده قرار دهیم , از آرایه ای از رشته ها استفاده می کنیم. برای مثال اگر بخواهیم اسامی دانشج.یان یک کلاس را ذخیره کنیم. آرایه ای از رشته یعنی همان آرایه ای از آرایه ها که همان آرایه دو بعدی است . پس می توان آرایه ای دو لعدی تعریف کرد که بعد اول رشته ها و بعد دوم طول هر رشته را نشان دهد.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخ دهید

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