فصل ۲۱ دایتل: رشته ها
توی این فصل در مبحث رشته ها در سی++ بیشتر عمیق میشیم. درواقع کلاس 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);
دوتا آرگومان آخر دلخواه هستند و میشه اونهارو ننوشت.
پایان
خیلی خوبه که بیشتر نکات این چندفصل آخر رو بلد بودم و دارم سریع پیش میرم. (: باعث میشه اعتماد به نفس بهتری داشته باشم.