رشته ها در زبان C++
در زبان برنامه نویسی C++ دو نوع رشته وجود دارد:
- رشته کلاسیک و به سبک زبان C که از نوع char می باشد.
- رشته جدید که از نوع کلاس string معرفی شده در زبان C++ استاندارد می باشد.
رشته به سبک زبان C
این نوع رشته ها از زبان C وارد زبان C++ شده اند. این نوع رشته ها در حقیقت یک آرایه تک بعدی از کاراکترها هستند که با کاراکتر ‘\۰’ پایان می پذیرند. بنابراین یک رشته خالی فقط شامل یک کاراکتر ‘\۰’ می باشد. به این کاراکتر، null می گویند. اعلان زیر یک آرایه را که شامل کاراکترهای کلمه “Hello” است، ایجاد می کند. برای این که یک آرایه بتواند کاراکتر null در انتهای خود داشته باشد باید طول آرایه یک واحد بیشتر از طول کاراکترها باشد.
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
دستور بالا را می توان به این صورت هم نوشت:
char greeting[] = "Hello";
شکل زیر نحوه قرار گیری این آرایه در حافظه را نشان می دهد:
در حقیقت شما کاراکتر null در انتهای آرایه قرار نمی دهید و کامپایلر به طور خودکار این کاراکتر را به انتهای آرایه اضافه می کند. مثال زیر آرایه بالا را چاپ می کند:
#include <iostream> using namespace std; int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; cout << "Greeting message: "; cout << greeting << endl; return 0; }
امتحان کنید
زمانی که کد بالا توسط کامپایلر زبان C++ اجرا شود، نتیجه زیر را تولید خواهد کرد:
Greeting message: Hello
به منظور دستکاری رشته هایی که با کاراکتر null خاتمه می یابند، توابع زیادی وجود دارند که برخی از آن ها را در جدول زیر مشاهده می کنید:
Sr.No. | توضیحات |
۱ | 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 <iostream> #include <cstring> using namespace std; int main () { char str1[10] = "Hello"; char str2[10] = "World"; char str3[10]; int len ; // copy str1 into str3 strcpy( str3, str1); cout << "strcpy( str3, str1) : " << str3 << endl; // concatenates str1 and str2 strcat( str1, str2); cout << "strcat( str1, str2): " << str1 << endl; // total lenghth of str1 after concatenation len = strlen(str1); cout << "strlen(str1) : " << len << endl; return 0; }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
کلاس String در زبان C++
کتابخانه استاندارد زبان C++ کلاس stringرا ارائه می دهد که علاوه بر پشتیبانی از موراد گفته شده فوق، قابلیت های جدید دیگری را نیز در خود دارد. مثال زیر نحوه استفاده از این کلاس را نشان می دهد:
#include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World"; string str3; int len ; // copy str1 into str3 str3 = str1; cout << "str3 : " << str3 << endl; // concatenates str1 and str2 str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // total length of str3 after concatenation len = str3.size(); cout << "str3.size() : " << len << endl; return 0; }
امتحان کنید
زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:
str3 : Hello str1 + str2 : HelloWorld str3.size() : 10
نوشته رشته ها در زبان C++ – آموزش زبان C++ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.