سلام به همه. :bye
کامپایلر های جدید که برای میکرو ها اومدن اکثرا 30++ رو هم ساپورت میکنند و خیلی جا ها بهتره که از 30++ به جای 30 استفاده کنیم تا بتونیم از امکانات بیشتر اون استفاده کنیم.
جدا از اون بحث کلاس ها و شی گرایی و .... یه سری امکانات دیگه مثل STL (standard template library) و رشته ها و..... هست که بسیار کار آمد هم هست. خودم استارت اولین آموزش رو میزنم و از رشته ها شروع میکنم. دوستان اگه نظری داشتند و یا من اشتباهی کردم لطفا بهم بگن. اگه خدا کمک کنه و استقبال هم خوب باشه وکتور و لیست و... رو هم میاریم وسط و نحوه کارش رو میگیم:
خوب اصل مطلب:
توی حالت عادی برای ایجاد رشته از یه آرایه استفاده میکنیم که مشکلات خودشون مثل داشتن سایز ثابت(حالت استاتیک),سخت بودن اضافه کردن به وسط آرایه,نبود جستجو و..... همه اینها رو میشه یه جورایی مشکلش رو حل کرد اما هم سخته و هم به بهینه بودن string نمیرسه.
برای اینکه بتونید از string استفاده کنید باید کتابخونه اون رو با دستور
از اینجا به بعد میتونید از string به صورت یه متغیر هرجای برنامه تعریف کنید.
خوب حالا که تعریف کردیم چه طور باید استفاده کنیم؟ لیست تابع ها رو میذارم. بعد تک تک توضیح میدمشون:
[hr]
assign
این تابع برای مقدار دادن به رشته استفاده میشه.برای واضح بودن کار 2تا رشته تعریف میکنم و با اونا کار میکنم.
این تابع چند ریختی هست و به صورت های مختلف استفاده میشه:
اگه بخوایم مقدار بیس رو مستقیم تو str بریزیم:
اگر بخوایم قسمتی از یه رشته رو تو یه رشته دیگه بریزیم:
این تابع از کاراکتر 10 ام رشته بیس تا 9 تا اون طرف ترش رو تو رشته str میریزه. که مقدارش میشه"brown fox"
این تابع هم 7تای اول رشته ای که داخلش هست رو ذخیره میکنه. که مقدارش میشه"pangram"
این تابع هم که دیگه بحثی توش نیست.
این تابع به تعداد آرگومان اولش,آرگومان دوم رو کپی میکنه که حاصل 10 تا ستاره هست..
این تابع دقیقا مثل تابع قبل هست ولی به جای کاراکتر کد اسکی رو میگیره که در اینجا 2D میشه- پس نتیجه میشه:----------
در مورد begin و end مفصل حرف میزنیم.اما خلاصه اون میشه اینکه 16 تای اول رشته بیس رو رد میکنه بعد شروع میکنه به نوشتن تو رشته مقصد تا برسه به 12 تا کاراکتر آخر که اونا رو هم بیخیال میشه! حاصل میشه:"fox jumps over"
خوب فعلا خسته شدم. بقیه رو کم کم میگم تا رشته ها رو به یه جایی برسونیم. دقت کنید تا اینجا فقط یه تابع رو برسی کردیم و چیز زیادی نبود. از ظاهر چند ریختی اون نترسید.یکم کار کنید میبینید خیلی منعطف هست.
ادامه دارد.......
کامپایلر های جدید که برای میکرو ها اومدن اکثرا 30++ رو هم ساپورت میکنند و خیلی جا ها بهتره که از 30++ به جای 30 استفاده کنیم تا بتونیم از امکانات بیشتر اون استفاده کنیم.
جدا از اون بحث کلاس ها و شی گرایی و .... یه سری امکانات دیگه مثل STL (standard template library) و رشته ها و..... هست که بسیار کار آمد هم هست. خودم استارت اولین آموزش رو میزنم و از رشته ها شروع میکنم. دوستان اگه نظری داشتند و یا من اشتباهی کردم لطفا بهم بگن. اگه خدا کمک کنه و استقبال هم خوب باشه وکتور و لیست و... رو هم میاریم وسط و نحوه کارش رو میگیم:
خوب اصل مطلب:
توی حالت عادی برای ایجاد رشته از یه آرایه استفاده میکنیم که مشکلات خودشون مثل داشتن سایز ثابت(حالت استاتیک),سخت بودن اضافه کردن به وسط آرایه,نبود جستجو و..... همه اینها رو میشه یه جورایی مشکلش رو حل کرد اما هم سخته و هم به بهینه بودن string نمیرسه.
برای اینکه بتونید از string استفاده کنید باید کتابخونه اون رو با دستور
#include <string>
به اول برنامه اضافه کنید.بعد از اون باید به برنامه بگید که از std هم میخواید استفاده کنید.برای این منظور این خط رو هم اضافه میکنیم: using namespace:std;از اینجا به بعد میتونید از string به صورت یه متغیر هرجای برنامه تعریف کنید.
string test1;
strang test2="ECA";
strang test2="ECA";
خوب حالا که تعریف کردیم چه طور باید استفاده کنیم؟ لیست تابع ها رو میذارم. بعد تک تک توضیح میدمشون:
کد:
string::append string::assign string::at string::begin string::capacity string::clear string::compare string::copy string::c_str string::data string::empty string::end string::erase string::find string::find_first_not_of string::find_first_of string::find_last_not_of string::find_last_of string::get_allocator string::insert string::length string::max_size string::operator+= string::operator= string::operator[] string::push_back string::rbegin string::rend string::replace string::reserve string::resize string::rfind string::size string::substr string::swap
assign
این تابع برای مقدار دادن به رشته استفاده میشه.برای واضح بودن کار 2تا رشته تعریف میکنم و با اونا کار میکنم.
string str;
string base="The quick brown fox jumps over a lazy dog.";
string base="The quick brown fox jumps over a lazy dog.";
این تابع چند ریختی هست و به صورت های مختلف استفاده میشه:
اگه بخوایم مقدار بیس رو مستقیم تو str بریزیم:
str.assign(base);
اگر بخوایم قسمتی از یه رشته رو تو یه رشته دیگه بریزیم:
str.assign(base,10,9);
این تابع از کاراکتر 10 ام رشته بیس تا 9 تا اون طرف ترش رو تو رشته str میریزه. که مقدارش میشه"brown fox"
str.assign("pangrams are cool",7)
این تابع هم 7تای اول رشته ای که داخلش هست رو ذخیره میکنه. که مقدارش میشه"pangram"
str.assign("ECA..."
;

این تابع هم که دیگه بحثی توش نیست.
str.assign(10,'*'
;

این تابع به تعداد آرگومان اولش,آرگومان دوم رو کپی میکنه که حاصل 10 تا ستاره هست..
str.assign<int>(10,0x2D);
این تابع دقیقا مثل تابع قبل هست ولی به جای کاراکتر کد اسکی رو میگیره که در اینجا 2D میشه- پس نتیجه میشه:----------
str.assign(base.begin()+16,base.end()-12);
در مورد begin و end مفصل حرف میزنیم.اما خلاصه اون میشه اینکه 16 تای اول رشته بیس رو رد میکنه بعد شروع میکنه به نوشتن تو رشته مقصد تا برسه به 12 تا کاراکتر آخر که اونا رو هم بیخیال میشه! حاصل میشه:"fox jumps over"
خوب فعلا خسته شدم. بقیه رو کم کم میگم تا رشته ها رو به یه جایی برسونیم. دقت کنید تا اینجا فقط یه تابع رو برسی کردیم و چیز زیادی نبود. از ظاهر چند ریختی اون نترسید.یکم کار کنید میبینید خیلی منعطف هست.

ادامه دارد.......
دیدگاه