رشته ها در زبان C
رشته ها در حقیقت یک آرایه تک بعدی از کاراکترها هستند که با کاراکتر ‘\۰’ پایان می پذیرند. بنابراین یک رشته خالی فقط شامل یک کاراکتر ‘\۰’ می باشد. به این کاراکتر، null می گویند. اعلان زیر یک آرایه را که شامل کاراکترهای کلمه “Hello” است، ایجاد می کند. برای این که یک آرایه بتواند کاراکتر null در انتهای خود داشته باشد باید طول آرایه یک واحد بیشتر از طول کاراکترها باشد.
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
دستور بالا را می توان به این صورت هم نوشت:
char greeting[] = "Hello";
شکل زیر نحوه قرار گیری این آرایه در حافظه را نشان می دهد:
در حقیقت شما کاراکتر null در انتهای آرایه قرار نمی دهید و کامپایلر زبان C به طور خودکار این کاراکتر را به انتهای آرایه اضافه می کند. مثال زیر آرایه بالا را چاپ می کند:
#include <stdio.h> int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Greeting message: %s\n", greeting ); return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر C و اجرا شود، نتیجه زیر را تولید خواهد کرد:
Greeting message: Hello
در زبان برنامه نویسی C، به منظور دستکاری رشته هایی که با کاراکتر null خاتمه می یابند، توابع زیادی وجود دارند که برخی از آن ها را در جدول زیر مشاهده می کنید:
ردیف | توضیحات |
۱ | strcpy(s1, s2)
رشته s2 را در رشته s1 کپی می کند (مشابه عملگر انتساب). |
۲ | strcat(s1, s2)
رشته s2 را به انتهای رشته s1 می چسباند. |
۳ | strlen(s1)
طول رشته را بر میگرداند. |
۴ | strcmp(s1, s2)
دو رشته را با هم مقایسه می کند. اگر هر دو مشابه باشند، مقدار ۰ بر میگرداند، اگر رشته اول (s1) کمتر از رشته دوم (s2) باشد، مقدار منفی بر میگرداند و اگر رشته اول (s1) از رشته دوم (s2) بزرگ تر باشد، مقدار بزرگتر از صفر بر میگرداند. |
۵ | strchr(s1, ch)
یک اشاره گر به اولین وقوع ch در رشته s1 بر میگرداند. |
۶ | strstr(s1, s2)
یک اشاره گر به اولین وقوع s2 در رشته s1 بر میگرداند. |
برخی از توابع فوق در مثال زیر استفاده شده اند:
#include <stdio.h> #include <string.h> int main () { char str1[12] = "Hello"; char str2[12] = "World"; char str3[12]; int len ; /* copy str1 into str3 */ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /* concatenates str1 and str2 */ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /* total lenghth of str1 after concatenation */ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
نوشته رشته ها در زبان C – آموزش زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.