راهنمای جامع کار با رشتهها در زبان C
مقدمه
در زبان C، رشتهها آرایههایی از کاراکترها هستند که با کاراکتر \0
یا همان (null terminator) خاتمه مییابند. برای کار با رشتهها، کتابخانه <string.h>
مجموعهای از توابع را ارائه میدهد که امکان مقایسه، کپی، جستجو و تغییر رشتهها را فراهم میکنند. برخی از این توابع رایج و شناختهشده هستند که در این آموزش توضیح داده شده اند، اما توابع کمتر شناختهشده نیز وجود دارند که میتوانند در برخی شرایط بسیار مفید باشند.

توابع رایج کار با رشتهها
1. strlen
– محاسبه طول رشته
این تابع طول یک رشته را بدون احتساب کاراکتر \0
محاسبه میکند.
خروجی:
2. strcpy
و strncpy
– کپی رشته
تابع strcpy
یک رشته را در مقصد کپی میکند، اما در صورت کوتاه بودن مقصد ممکن است باعث خرابی حافظه شود. strncpy
امنتر است زیرا تعداد کاراکترها را محدود میکند.
خروجی:
3. strcmp
و strncmp
– مقایسه رشتهها
این توابع دو رشته را با هم مقایسه میکنند. strcmp
تمام کاراکترها را بررسی میکند، اما strncmp
فقط تعداد مشخصی از کاراکترها را مقایسه میکند.
خروجی:
توابع کمتر شناختهشده و کاربردی
4. strncasecmp
– مقایسه بدون حساسیت به حروف بزرگ و کوچک
خروجی:
5. strchrnul
– یافتن کاراکتر در رشته (بازگشت به پایان در صورت نبودن)
خروجی:
6. strdup
– تکثیر رشته (نیاز به <stdlib.h>
)
خروجی:
7. strtok_r
– توکنایزر رشته (نسخه امنتر strtok
)
خروجی:
8. memmem
– جستجوی رشته در یک بلاک حافظه
خروجی:
9. strcasestr
– جستجوی زیررشته بدون حساسیت به حروف بزرگ و کوچک
خروجی:
در زبان C توابع متعددی برای پردازش رشتهها وجود دارد. در این مقاله، علاوه بر توابع پرکاربرد، به توابع کمتر شناختهشدهای مانند strncasecmp
، strdup
، strchrnul
و strcasestr
اشاره شد که در برخی شرایط میتوانند جایگزین بهتری برای توابع استاندارد باشند. آشنایی با این توابع میتواند به بهینهتر و کاراتر شدن کدهای C شما کمک کند.