نحوه مقایسه دو رشته در زبان برنامه نویسی C

نویسنده: William Ramirez
تاریخ ایجاد: 18 سپتامبر 2021
تاریخ به روزرسانی: 1 جولای 2024
Anonim
درآمد دلاری زبان های برنامه نویسی ۲۰۲۱
ویدیو: درآمد دلاری زبان های برنامه نویسی ۲۰۲۱

محتوا

در کد C بسیار متداول است که طول رشته ها را مقایسه کنید تا مشخص شود کدام رشته شامل نویسه های بیشتری است. این برای مرتب سازی داده ها مفید است. برای مقایسه رشته ها یک عملکرد خاص لازم است - استفاده نکنید != یا ==.

مراحل

  1. 1 زبان برنامه نویسی C شامل دو عملکرد است که می توانید برای مقایسه طول رشته ها از آنها استفاده کنید. هر دوی این عملکردها در کتابخانه گنجانده شده است string.h>.
    • strcmp () - این تابع دو رشته را مقایسه می کند و تفاوت تعداد کاراکترها را برمی گرداند.
    • strncmp () - این عملکرد مشابه است strcmp () مگر اولی n شخصیت ها. به دلیل جلوگیری از خرابی سرریز ، امنیت بیشتری در نظر گرفته می شود.
  2. 2 برنامه را با کتابخانه های مورد نیاز شروع کنید. شما به کتابخانه نیاز خواهید داشت stdio.h> و string.h>و همچنین کتابخانه های دیگر مورد نیاز برای برنامه خاص شما.

    #incdlude stdio.h> #include string.h>

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

    #incdlude stdio.h> #include string.h> int main () {}

  4. 4 دو رشته ای را که می خواهید مقایسه کنید مشخص کنید. در مثال ما ، بیایید دو رشته از نوع را مقایسه کنیم زغال سنگ... همچنین مقدار بازگشت را به عنوان یک عدد صحیح تعریف کنید.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "نارنجی" ؛ int ret؛ }

  5. 5 تابع مقایسه را وارد کنید. در مثال ما ، از تابع استفاده خواهیم کرد strncmp ()... در آن شما باید تعداد کاراکترهای اندازه گیری شده را تنظیم کنید.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "نارنجی" ؛ int ret؛ ret = strncmp (str1 ، str2 ، 8) ؛ / * دو رشته را با حداکثر 8 کاراکتر * /} مقایسه می کند

  6. 6 یک عبارت شرطی وارد کنید اگر.. دیگر. برای نشان دادن اینکه کدام خط طولانی تر است لازم است. تابع strncmp () شماره را برمی گرداند 0اگر طول رشته ها یکسان باشد ، اگر str1 بیشتر باشد یک عدد مثبت و اگر str2 طولانی تر باشد یک عدد منفی است.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "نارنجی" ؛ int ret؛ ret = strncmp (str1 ، str2 ، 8) ؛ if (ret> 0) {printf ("str1 طولانی تر است")؛ } else if (ret 0) {printf ("str2 طولانی تر است")؛ } else {printf ("طول خطوط برابر است")؛ } بازگشت (0) ؛ }

هشدارها

  • به یاد داشته باشید که اگر طول رشته ها برابر باشد ، مقدار 0 بازگردانده می شود. این می تواند گیج کننده باشد زیرا 0 نیز FALSE است.