مقایسه دو متن با طولهای متفاوت در متلب

گاها نیاز است در متلب برنامه ای بنویسیم که در آن دو متن، جمله یا رشته با یکدیگر مقایسه شوند و اینکه آیا اینها یکسان هستند یا نه را متوجه شویم. شاید بگویید از عملگرهای مقایسه کننده مانند == استفاده میکنیم. اما مشکل زمانی ایجاد میشود که ممکن است رشته هایی که باهم مقایسه میکنیم هم طول نباشند. و این مشکل بدتر هم میشود، زمانیکه یک رشته را از کاربر بخواهید بگیرید و مقایسه کنید و اگر کاربر به اشتباه یا عمدا رشته ای با طول نامناسب بدهد برنامه خطا میدهد و اجرای برنامه متوقف میشود.

به عنوان نمونه به مثال زیر توجه کنید. با استفاده از عملگر == دو رشته yarcode.ir و YarCode.ir را باهم مقایسه میکنیم. خروجی برداری است که کاراکترهای این دو رشته را نظیر به نظیر مقایسه میکند و در صورتی که یکسان باشند عدد 1 و در صورت نابرابری عدد 0 را بر میگرداند. با توجه به اینکه به حروف بزرگ و کوچک حساس است میبینید دو حرفی که متفاوت نوشته شده اند را نا یکسان قلمداد کرده.

اما اگر این دو رشته طول نا برابر داشته باشند مانند مثال دوم که دو رشته Mehdi Moghimi و YarCode.ir را با یکدیگر مقایسه کرده ایم با خطا در برنامه متلب مواجه میشویم. چراکه دو رشته هم طول نیستند و نمیتواند نظیر به نظیر مقایسه کند.

مقایسه رشته با عملگر ==

 

اما راه حل این مسئله چیست؟ متلب برای این منظور نیز راهکاری در نظر گرفته است.

با استفاده از دستور strcmp در متلب، می توانیم دو رشته (string) را با یکدیگر مقایسه کنیم و ببینیم که آیا دقیقا مثل هم هستند یا خیر. شیوه مقایسه کردن، به صورت حساس بودن به بزرگی و کوچکی حروف (case sensitive) نیز خواهد بود، یعنی برای مثل هم بودن، تنها معیار مثل هم بودن حروف آنها نیست، بلکه از نظر بزرگ بودن یا کوچک بودن حروف نیز باید مثل هم باشند.

اگر دو رشته (string) دقیقا مثل هم باشند، دستور strcmp ، مقدار 1 را برمی گرداند، اما اگر دو رشته متفاوت باشند، دستور strcmp ، مقدار 0 را برمی گرداند.

به مثالهای زیر توجه کنید. در این مثالها به کوچک و بزرگ بودن حروف دقت کنید:

مقایسه رشته با دستور strcmp

 

در صورتی که میخواهید به بزرگ یا کوچک بودن حروف حساس نباشد و دو رشته را فارغ از بزرگی یا کوچکی حروف آنها مقایسه کند باید از دستور strcmpi استفاده کنید.

 

این آموزش توسط مهدی مقیمی و به منظور ارائه در سایت یارکد به نشانی www.YarCode.ir تهیه شده است.

 

 

دیدگاهتان را بنویسید

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