رشته ها در C++
در این بخش ما به بررسی رشته ها در C++ می پردازیم و روش استفاده از آن را در برنامه یاد خواهیم گرفت، همچنین شما می توانید کار با رشته ها در سی پلاس پلاس را از طریق ویدیو قرار داده شده در این بخش آموزش ببینید.
ما از رشته ها string
برای ذخیره متن ها در برنامه استفاده می کنیم که در مواقع مشخص در صورت نیاز، آنها را فراخوانی کرده و استفاده می کنیم.
فهرست مطالب:
- رشته ها در سی پلاس پلاس به سبک زبان C
- کلاس String
- توابع برای رشته ها
- پیوستگی رشته ها
- تابع Append
- اعداد در رشته ها
- بدست آوردن طول رشته با استفاده از تابع Length
- دسترسی به حروف تشکیل دهنده رشته ها
- رشته های ورودی کاربر
رشته ها در سی پلاس پلاس به سبک زبان C
رشته ها در سی پلاس پلاس به دو صورت نمایش داده میشود:
- روش آرایهای (مشابه زبان برنامه نویسی سی)
- استفاده از کلاس
String
ابتدا یک اشاره ای به روش آرایه ای مشابه زبان برنامه نویسی C میکنیم سپس کلاس String را بررسی خواهیم کرد. روش آرایهای در رشتهها از زبان سی شروع شده و در زبان سی پلاس پلاس نیز ادامه پیدا کرد. در واقع رشته تعریف شده یک آرایه یک بعدی (One-dimensional) است.
زبان سی پلاس پلاس برای تشخیص پایان رشته از کاراکتر Null یا \0 استفاده میکند. این نوع رشتهها در سی پلاس پلاس به صورت زیر تعریف میشوند.
مثال
char str1[] = { 'C','+','+','\0' };
cout << "String message: ";
cout << str1 << endl;
خروجی:
String message: C++
اگر مقادیر به صورت کاراکتر باشد داخل تک کوتیشن ' '
قرار می دهیم مانند مثال بالا، ولی اگر به صورت رشته ای باشد داخل دابل کوتیشن " "
، مانند مثال پایین:
char str[] = "Matin Boronsi";
char s[10] = "computer";
کلاس String در سی پلاس پلاس
برای تعریف و ساخت یک رشته در سی پلاس پلاس ما از متغیر string
استفاده می کنیم.
مثال
string example = "Hello";
در این مثال ما با استفاده از متغیر string
مقدار Hello را در exmaple قرار داده ایم و هرکجای برنامه متغیر example را فراخوانی کنیم، برنامه مقدار Hello را برای ما برمیگرداند.
برای استفاده از رشته در سی پلاس پلاس شما باید کتاب خانه string را به برنامه خود اضافه کنید.
مثال
برای استفاده از کلاس String در برنامه باید کتابخانه string.h را به برنامه اضافه کنیم:
#include <string.h>
در واقع از این قطعه کد جهت فراخوانی کتابخانه string استفاده می شود.
توابع برای رشته ها در C++
به منظور دستکاری/ویرایش رشته هایی که با کاراکتر null خاتمه می یابند، توابع زیادی وجود دارند که برخی از آن ها را در جدول زیر مشاهده می کنید:
پیوند دادن رشته ها در C++
از عملگر پلاس (+
) جهت متصل کردن/پیوند رشته ها به هم استفاده می کنیم.
مثال
string firstName = "Matin";
string lastName = "Boronsi";
string fullName = firstName + lastName;
cout<< fullName;
در مثال بالا ما سه متغیر از نوع string
داریم: firstName
و lastName
و fullName
در متغیر سوم یعنی fullName
ما مقادیر firstName
به همراه lastName
را با عملگر (+
) بهم متصل کردیم و داخل متغیر fullName
قرار دادیم.
سپس با استفاده از cout
متغییر fullName
را فراخوانی کردیم که خروجی یک چیزی شبیه به این خواهد بود:
MatinBoronsi
همانطور که خروجی بالا رو مشاهده میکنید مقادیر دو متغیر firstName
و lastName
بهم پیوند خورده است، برای اینکه یک فاصله بین "Matin"
و "Boronsi"
اضافه بکنیم باید به این شکل عمل کنیم:
string firstName = "Matin";
string lastName = "Boronsi";
string fullName = firstName +" "+ lastName;
cout << fullName;
تابع Append در C++
یک رشته در C++ در واقع یک شی (object
) است که می توانید روی آن توابعی رو اجرا بکنید. همچنین می توانید بجای عملگر (+
) از تابع append()
هم نیز استفاده کنید مانند مثال زیر:
string firstName = "Matin";
string lastName = "Boronsi";
string fullName = firstName.append(lastName);
cout << fullName;
خروجی کد بالا به این شکل خواهد بود:
MatinBoronsi
این به شما بستگی دارد که آیا می خواهید از +
یا append()
استفاده کنید. تفاوت عمده این دو در این است که تابع append()
بسیار سریعتر است. با این حال استفاده از +
ساده تر است.
اعداد در رشته ها
سی پلاس پلاس از عملگر (+
) برای جمع یا پیوند استفاده می کند و این دو بستگی به نوع متغیر های شما دارد، در ادامه به مثال ها خوب دقت کنید تا فرق آن را متوجه شوید.
مثال
اگر دو عدد را با هم جمع کنید، خروجی شامل مجموع آن دو عدد خواهد بود مانند مثال زیر:
int x = 10;
int y = 20;
int z = x + y; // z will be 30 (an integer)
خروجی مقدار متغیر z عدد 30 خواهد بود.
مثال
اگر دو رشته را باهم جمع کنید، خروجی همان 2 رشته خواهد بود به مثال زیر دقت کنید:
string x = "10";
string y = "20";
string z = x + y; // z will be 1020 (a string)
خروجی مقدار متغیر z برابر خواهد بود با 1020 ، بله درست حدس زدید ، سی پلاس پلاس دیگر این متغیر ها را به چشم یک عدد در نظر نمیگیرد و آنها را رشته می داند.
مثال
اگر قصد داشته باشید یک رشته را با یک عدد جمع کنید، با خطا مواجه می شوید مانند مثال زیر:
string x = "10";
int y = 20;
string z = x + y;
بدست آوردن طول رشته با استفاده از تابع Length در C++
برای بدست آوردن طول یک رشته از تابع length()
استفاده می کنیم.
مثال
string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
cout << "The length of the txt string is: " << txt.length();
خروجی کد بالا تعداد حروف تشکیل دهنده رشته txt می باشد.
دسترسی به حروف تشکیل دهنده رشته ها در C++
شاید گاهی اوقات ما قصد داشته باشیم تا یک حرف را از درون یک رشته استخراج کنیم، مثلاً "Hello"
را در نظر بگیرید، ما قصد داریم حرف دوم که e
هست را استخراج کنیم و نمایش بدهیم.
مثال
string myString = "Hello";
cout << myString[1];
// Outputs e
خروجی حرف e خواهد بود.
نکته: تقریباً در اکثر زبان های برنامه نویسی، عدد شروع ما 0 هست یعنی در این کلمه اولین حرف ما 0 هست و دومین حرف 1 تا الی آخر…
پس اگر حرف دوم را می خواهید استخراج کنید باید عدد 1 را بدهید، فرمول ریاضی این مورد می شود این : n-1
به عنوان مثال اگر حرف 3 را می خواهید باید مقدار 2 را بدهید.
مثال
در این مثال قصد داریم یک حرف را با یک حرف دیگر جایگزین کنیم:
string myString = "Hello";
myString[0] = 'J';
cout << myString;
// Outputs Jello instead of Hello
در قطعه کد بالا ما مشخص کردیم که اولین حرف رشته myString که برابر با H هست به J تغییر کند.
رشته های ورودی کاربر در سی پلاس پلاس
بسیار خب حالا ما قصد داریم که این دفعه با اجرای برنامه کاربر رشته مورد نظر خود را وارد کرده و ما یکسری عملیات روی آن انجام دهیم به مثال زیر دقت کنید:
برای دریافت مقادیر از کاربر، از کد cin
استفاده میکنیم.
مثال
برنامه بالا، نام کاربر را گرفته و نمایش می دهد، حتماً برای درک بهتر مطالب کد ها را تست و بررسی کنید.
آیا این مطلب برای شما مفید بود ؟