فصل ۲۱ دایتل: رشته ها

توی این فصل در مبحث رشته ها در سی++ بیشتر عمیق میشیم. درواقع کلاس string از STL رو بررسی می‌کنیم.

توی این فصل در مبحث رشته ها در سی++ بیشتر عمیق میشیم. درواقع کلاس string از STL رو بررسی می‌کنیم.

پست کوتاهیه چون بیشتر چیزها رو بلد بودم :)

تابع compare

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

اینطوری:

string str1{"This is string"};
string str2{"oh This string"};
if (str1.compare(0, 3, str2, 3, 5)) {
// do something
}

تابع replace و نکته‌ش

تابع replace میاد و از مکانی که براش مشخص می‌کنیم میگرده و مقدار مشخص شده رو پیدا می‌کنه و رشتهٔ جایگزین رو بجاش می‌ذاره.

نکته‌ش اینه که اگر مثلا شما دنبال یک رشته بگردید که ۲ کاراکتر داره و بخواین این زیر رشته رو با یک رشته که ۴ کاراکتر داره جایگزین کنید، ۲ کاراکتر بعد از رشته مورد جستجوی ما از بین میره.

الآن حوصله نوشتن مثال ندارم. امیدوارم گنگ نگفته باشم (:

برای اینکه به این مشکل برنخوریم بهتره که اول موقعیت رخداد رشته مورد جستجو رو با استفاده از تابع find پیدا بکنیم و بعد با استفاده از تابع insert رشته مورد نظرمون رو بذاریم بجاش.

تبدیل رشته به عدد

توابعی که برای اینکار وجود دارن اینا هستن:

تابع هایی که می‌بینیم درواقع ۳ تا ورودی دارن(به جز تابع های مربوط به اعداد اعشاری که ورودی سوم رو ندارن) که دوتای آخرشون default دارن.

  • ورودی اول: رشته ای که میخوایم به عدد تبدیل بشه
  • یک اشاره گر به size_t برای ذخیره کردن اولین اندیسی که این تابع قادر به تبدیلش نبوده
  • یک عدد صحیح بین ۲ تا ۳۶ که مبنای عدد رو مشخص می‌کنه.

به عنوان مثال فرض کنیم str یک رشته است که مقدار “123” در اون ذخیره شده. اینطور میشه به int تبدیلش کرد:

int convertedInt = stoi(str, nullptr, 10);

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

پایان

خیلی خوبه که بیشتر نکات این چندفصل آخر رو بلد بودم و دارم سریع پیش میرم. (: باعث میشه اعتماد به نفس بهتری داشته باشم.