داغ ترین ویدیو بابلز لرن : هک کلاس های مجازی توسط متین برونسی

ویژگی تصویر

رشته ها در سی پلاس پلاس

  /  سی پلاس پلاس   /  رشته ها در C++

در این بخش ما به بررسی رشته ها در C++ می پردازیم و روش استفاده از آن را در برنامه یاد خواهیم گرفت، همچنین شما می توانید کار با رشته ها در سی پلاس پلاس را از طریق ویدیو قرار داده شده در این بخش آموزش ببینید.

ما از رشته ها string برای ذخیره متن ها در برنامه استفاده میکنیم که در مواقع مشخص در صورت نیاز، آنها را فراخوانی کرده و استفاده می کنیم.

فهرست مطالب:

رشته ها در سی پلاس پلاس به سبک زبان C

رشته ها در سی پلاس پلاس به دو صورت نمایش داده می‌شود:

  1. روش آرایه‌ای (مشابه زبان برنامه نویسی سی)
  2. استفاده از کلاس 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 را به برنامه خود اضافه کنید، مانند مثال زیر:

// Include the string library
#include <string.h>

// Create a string variable
string greeting = "Hello";

همانطور که در مثال بالا مشاهده میکنید برای استفاده از کلاس String در برنامه باید کتابخانه string.h را به برنامه اضافه کنیم:

#include <string.h>

در واقع این قطعه کد جهت فراخوانی کتابخانه string استفاده می شود.

توابع برای رشته ها در C++

به منظور دستکاری/ویرایش رشته هایی که با کاراکتر null خاتمه می یابند، توابع زیادی وجود دارند که برخی از آن ها را در جدول زیر مشاهده می کنید:

توابع C++ برای رشته ها
تابععملکرد
strcpy(s1,s2)رشته s2 را در رشته s1 کپی می کند
strcat(s1,s2)رشته s2 را به انتهای رشته s1 می چسباند
strlen(s1)طول رشته را بر میگرداند
strcmp(s1,s2)اگر s1 = s2 باشد مقدار صفر را بر میگرداند ، اگر s1<s2 باشد مقدار منفی و اگر s1>s2 مقدار مثبت بر میگرداند.
strchr(s1,ch)یک اشاره گر به اولین وقوع ch در رشته s1 بر میگرداند
strstr(s1,s2)یک اشاره گر به اولین وقوع s2 در رشته s1 بر میگرداند

پیوستگی رشته ها در 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;

خروجی کد بالا به این شکل خواهد بود:

Matin Boronsi

این به شما بستگی دارد که آیا می خواهید از + یا 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 استفاده میکنیم.

مثال:

این قسمت از محتوا مخفی شده است و فقط برای اعضای وب سایت قابل مشاهده می باشد، لطفاً با حساب کاربری وارد شوید.


برنامه بالا، نام کاربر را گرفته و نمایش می دهد ، حتماً برای درک بهتر مطالب کد ها را تست و بررسی کنید ، هر کجای این مطالب رو متوجه نشدید کامنت بزارید تا توضیحات و راهنمایی های بیشتری رو بهتون ارائه بدیم.

5/5 - (22 امتیاز)

آیا این مطلب برای شما مفید بود ؟

خیر
بله
 #نهج_البلاغه_بخوانیم

روش پاسخ دادن به ستايش ها و نيكى ها

و درود خدا بر او، فرمود: چون تو را ستودند، بهتر از آنان ستايش كن، و چون به تو احسان كردند، بيشتر از آن ببخش. به هر حال پاداش بيشتر از آن آغاز كننده است.

حکمت 62 نهج البلاغه

برای دسترسی به آموزش های بیشتر و ویدیو های من کلمات کلیدی متین برونسی را داخل گوگل جستجو کنید.