string.h
کتابخانه «string.h» برای کار با «رشته (String)» است. رشته یعنی متن با کاراکترهای پشت سرهم. با این کتابخانه، طول را می گیری، کپی می کنی، وصل می کنی، و دنبال حرف می گردی. بنابراین متن هایت را مثل پیام های موبایل راحت مدیریت می کنی.
تابع های پرتکرار string.h
تابع (Function) یک کار آماده انجام می دهد. بنابراین زمان توسعه کم می شود.
- طول و کپی:
strlen()طول را می دهد؛strcpy()وstrncpy()کپی می کنند. - چسباندن:
strcat()وstrncat()رشته ها را به هم وصل می کنند. - مقایسه:
strcmp()وstrncmp()برتری لغوی را می سنجند. - جستجو:
strchr()وstrrchr()مکان کاراکتر را می یابند؛strstr()زیررشته را پیدا می کند. - حافظه خام:
memcpy()،memmove()،memchr()،memset()روی بایت ها کار می کنند. - سایرها:
strtok()تکه تکه می کند؛strerror()متن خطا را می دهد.
هشدار: قبل از استفاده مقصد کپی باید جا داشته باشد؛ وگرنه باگ و کرش می گیری.
نمونه کد کوتاه
#include <stdio.h>
#include <string.h>
int main(void) {
char name[32];
char greet[64];
strcpy(name, "Amir");
strcpy(greet, "Hello ");
strcat(greet, name);
printf("%s\n", greet);
size_t len = strlen(greet);
printf("Length: %zu\n", len);
char *p = strchr(greet, 'o');
if (p != NULL) {
printf("First o at %ld\n", (long)(p - greet));
}
return 0;
}
تمرین گام به گام
- یک آرایه
charبرای نام بساز. - با
strcpy()نام را داخلش کپی کن. - با
strcat()سلام را به نام بچسبان. - طول نتیجه را با
strlen()چاپ کن.
نکته: اگر ناحیه ها هم پوشانی دارند، به جای memcpy() از memmove() استفاده کن.
پیوندهای مرتبط
برای مدیریت حافظه پویا سر بزن به stdlib.h. همچنین برای توابع ریاضی پایه ببین math.h.
جمع بندی سریع
strlenطول می دهد؛strcpyوstrcatکپی و چسباندن.- همیشه ظرفیت مقصد را بررسی کن.
strchrوstrstrبرای جستجو عالی اند.- برای بایت ها از خانواده
mem*استفاده کن.