تبلیغات
برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس - مطالب رشته های کاراکتری
برترین پیشنهاد

برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس

بزرگترین پایگاه آموزش سی پلاس پلاس و سورس تمام برنامه های آن

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

در تمامی موارد زیر فرض کنید str رشته ای از نوع string است که بصورت زیر تعریف شده است:
string str;
//end


تابع find: این تابع جهت یافتن یک زیر رشته در یک رشته از نوع string به کار می رود. این تابع بصورت کلی زیر بکار می رود:
;(نقطه شروع جستجو ,زیر رشته مورد جستجو)int pos = str.find


عملکرد این تابع به این صورت است که اگر زیر رشته داده شده به عنوان ورودی تابع در رشته ی str یافت شود، موقعیت آن در رشته str و در غیر این صورت عدد -1 برمیگرداند.

تابع rfind: این تابع از نظر به کار گیری دقیقا مشابه تابع find است با این تفاوت که عمل جستجو را از نقطه شروع به طور معکوس (به سمت ابتدا رشته) انجام میدهد.

تابع find_first_of: این تابع رشته را به جهت یافتن اولین موقعیتی که یک کاراکتر از عناصر یک مجموعه کاراکتری وجود داشته باشد، مورد جستجو قرار می دهد و بصورت کلی زیر بکار می رود:

;(نقطه شروع جستجو ,یک مجموعه کاراکتر بصورت رشته)int pos = str.find_first_of


تابع find_first_not_of: این تابع همانند تابع find_first_of عمل کرده با این تفاوت که رشته را به جهت یافتن اولین کاراکتری که داخل یک مجموعه از کاراکتر ها نباشد، مورد جستجو قرار میدهد. در صورت یافته شدن چنین کاراکتری در رشته، موقعیت کاراکتر را در رشته بصورت یک عدد int باز میگرداند و در غیر این صورت مقدار -1 را برمیگرداند.

تابع find_last_of و find_last_not_of: این دو تابع دقیقا مشابه دو تابع قبلی عمل میکنند با این تفاوت که همانند تابع rfind رشته را از انتها به ابتدا جهت یافتن آخرین کاراکتر مورد نظر جستجو میکند.



تابع strrev: این تابع با دریافت یک رشته محتویات آن را معکوس میکند. به عبارت دیگر کاراکتر ابتدا را به انتها و کاراکتر انتها را به ابتدا منتقل میکند و این عمل را برای تمامی کاراکتر های رشته انجام میدهد. به عنوان مثال دستور زیر موجب معکوس شدن رشته str می شود:

strrev(str);
//end


تابع strtok: این تابع نشانه های موجود در یک رشته را مشخص میکند و بیشتر برای تجزیه رشته ها کاربرد دارد:

char* token = strtok(str1, str2);
//end


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


تابع strset: این تابع محتویات یک رشته را با کاراکتری مشخص پر میکند. شکل کلی بکارگیری این تابع بصورت زیر است:

;(کاراکتر جایگزینی ,رشته مورد نظر)strset

به عنوان مثال دستور زیر رشته ی str را با کاراکتر x پر میکند:

strset(str, 'x');
//end


تابع strnset: این تابع یک کاراکتر را به تعداد دفعات مشخصی در یک رشته کپی میکند. شکل کلی:
;(تعداد دفعات کپی ,کاراکتر جایگزینی ,رشته مورد نظر)strnset


برای مثال دستور زیر کاراکتر 0 را به تعداد 8 بار در ابتدای رشته str کپی میکند:
strnset(str, '0', 8);
//end


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

;(رشته 2 ,رشته 1)int position=strcspn


تابع strupr: این تابع حروف یک رشته را به حروف بزرگ تبدیل میکند. شکل کلی بکارگیری این تابع به صورت زیر است:


;(نام رشته مورد نظر)strupr

تابع strlwr: این تابع تمامی حروف رشته را به حروف کوچک تبدیل میکند. شکل کلی:


;(نام رشته مورد نظر)strlwr


تابع strchr: این تابع اولین مکان یک کاراکتر را در یک رشته یافته و یک اشاره گر از نوع char* به مکان مورد نظر در رشته برمیگرداند. در صورتی که کاراکتر مورد نظر یافت نشود، مقدار NULL بازگردانده میشود. این به شکل کلی زیر به کار میرود:

;(کد اسکی کاراکتر مورد جستجو ,رشته مورد نظر)char* position=strchr


تابع strrchr: تنها تفاوت این تابع با strchr این است که آخرین مکان وقوع کاراکتر را در یک رشته برمیگرداند. به عبارت دیگر این تابع رشته را از انتها برای یافتن نخستین وقوع کاراکتر موردنظر جستجو میکند. به عنوان مثال دستور زیر رشته str را جهت یافتن آخرین وقوع کاراکتر 'b' مورد جستجو قرار میدهد:

char ch='b';
char* position=strrchr(str, ch);
//end


strlen: این تابع یک رشته از نوع آرایه ای از کاراکتر ها به کار میرود و دارای شکل کلی زیر است:

;(رشته مورد نظر)int lenght=strlen


شایان ذکر است که طول آرایه ی کاراکتری ممکن است با طول رشته ی مورد نظر متقاوت باشد، چرا که این تابع تعداد کاراکتر های رشته را از ابتدای رشته تا نقطه ای که به علامت NULL برسد میشمارد.


تابع strncat: این تابع نیز تعداد مشخصی کاراکتر از ابتدای رشته مبدا را به انتهای رشته مقصد متصل میکند و به شکل کلی زیر به کار میرود:

;(تعداد کاراکتر متصل شونده ,رشته مبدا ,رشته مقصد)strncat


تابع strnicmp_ : این تابع همانند تابع strncmp عمل کرده با این تفاوت که مقایسه ی دو رشته را بدون توجه به بزرگی و کوچکی حروف انجام میدهد. لذا دو رشته ی "quick" و "QUICK" از نظر این تابع با یکدیگر برابر هستند. شایان ذکر است که این تابع تنها مختص کامپایلر های شرکت مایکروسافت است. البته در بعضی دیگر مانند توربو سی پلاس پلاس 4.5 با عنوان strnicmp وجود دارد.


strncmp تابع مقایسه تعداد مشخصی از کاراکتر های دو رشته

شکل کلی:

;(تعداد کاراکتری که باید مقایسه شود ,رشته 2 ,رشته 1)int result=strncmp

مثال:

int result=strncmp(str1, str2, n);
//end

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


  • کل صفحات:3  
  • 1
  • 2
  • 3
  •