در این آموزش تیم کدگیت را با آموزش رشتهها در سی پلاس پلاس همراهی کنید. ابتدا انواع رشتهها را در سی پلاس پلاس تعریف کرده و سپس به پیاده سازی کد هر کدام میپردازیم. پیشنهاد میکنیم قبل از خواندن این آموزش، آموزشهای ابتدایی سی پلاس پلاس را مطالعه کنید.
رشتهها در سی پلاس پلاس
رشته ها در سی پلاس پلاس به دو صورت نمایش داده میشود:
- روش آرایهای (مشابه برنامه نویسی سی)
- استفاده از کلاس String
در روش آرایهای، رشتهها با کمک آرایهها پیاده سازی شده اما در کلاس String توابع آمادهای برای برنامهنویسان تهیه شده است تا بهکمک آنها براحتی از رشتهها استفاده کنند.
روش آرایهای
روش آرایهای در رشتهها از زبان سی شروع شده و در زبان سی پلاس پلاس نیز ادامه پیدا کرد. در واقع رشته تعریف شده یک آرایه یک بعدی ( One-dimensional ) است.زبان سی پلاس پلاس برای تشخیص پایان رشته از کاراکتر Null یا \0 استفاده میکند. این نوع رشتهها در سی پلاس پلاس به صورت زیر تعریف میشوند.
char temp[9] = { 'C', 'O', 'D', 'E', 'G', 'A', 'T', 'E', '\0' };
cout << "String message: ";
cout << temp << endl;
همانطور که در کد بالا میبینید یک رشته به صورت آرایه تعریف شده و سپس آن رشته را چاپ کردیم. خروجی برنامه به صورت زیر میباشد:
String message: CODEGATE
برای کار بر روی رشتههای آرایهای، سی پلاس پلاس متدهای مختلفی را فراهم کرده است. از جمله آنها میتوانیم به موارد زیر اشاره کنیم:
- (strcpy(s1, s2: این متد رشته s2 را در s1 کپی میکند
- (strcat(s1, s2: این متد دو رشته ورودی را ادغام میکند.
- (strlen(s1: این متد طول آرایه رشته s1 را برمیگرداند.
در مثال زیر از متدهای بالا استفاده شده است:
char str1[15] = "CodeGate";
char str2[15] = "Team";
char str3[15];
int len;
strcpy(str3, str1);
cout << "strcpy( str3, str1) : " << str3 << endl;
strcat(str1, str2);
cout << "strcat( str1, str2): " << str1 << endl;
len = strlen(str1);
cout << "strlen(str1) : " << len << endl;
در کد بالا 3 رشته را تعریف کرده و سپس با استفاده از توابع توضیح داده شده را استفاده کردیم. خروجی مثال بالا به صورت زیر است:
strcpy( str3, str1) : CodeGate
strcat( str1, str2): CodeGateTeam
strlen(str1) : 12
کلاس String
در روش دوم نمایش رشتهها در سی پلاس پلاس، کلاس String را معرفی میکنیم. در این کلاس تمام قابلیتهای روش قبل وجود دارد و حتی بعضی از قابلیتهای بیشتری نیز وجود دارد. در این قسمت فقط مثالی از این کلاس آوردهایم و در آموزشهای بعدی بیشتر در این مورد توضیح خواهیم داد.
string str11 = "Hello";
string str22 = "World";
string str33;
str33 = str11;
cout << "str3 : " << str33 << endl;
str33 = str11 + str22;
cout << "str1 + str2 : " << str33 << endl;
len = str33.size();
cout << "str3.size() : " << len << endl;
خروجی کد بالا به صورت زیر است:
str3 : Hello
str1 + str2 : HelloWorld
str3.size() : 10