توابع رشته‌ای در C

توابع کتابخانه string.h شامل strlen، strcpy، strcat و strcmp

کتابخانه string.h

کتابخانه string.h توابع مفیدی برای کار با رشته‌ها دارد. مهم‌ترین‌ها را یاد می‌گیرید:

strlen — طول رشته

char str[] = "Hello";
printf("%zu", strlen(str));  // 5 (بدون کاراکتر تهی)

strcpy — کپی رشته

char src[] = "Hello";
char dest[20];

strcpy(dest, src);  // محتوای src در dest کپی می‌شود
printf("%s", dest);  // Hello

⚠️ مقصد باید فضای کافی داشته باشد!

strcat — چسباندن رشته‌ها

char str1[20] = "Hello ";
char str2[] = "World";

strcat(str1, str2);  // str1 می‌شود "Hello World"
printf("%s", str1);

strcmp — مقایسه رشته‌ها

char a[] = "apple";
char b[] = "banana";

int result = strcmp(a, b);
// 0 یعنی مساوی
// منفی یعنی a قبل از b
// مثبت یعنی a بعد از b

⚠️ برای مقایسه رشته‌ها هرگز از == استفاده نکنید! (آدرس‌ها را مقایسه می‌کند نه محتوا را)

جدول توابع مهم string.h

تابععملکرد
strlen(s)طول رشته
strcpy(d, s)کپی s در d
strncpy(d, s, n)کپی حداکثر n کاراکتر (امن‌تر)
strcat(d, s)چسباندن s به انتهای d
strcmp(a, b)مقایسه دو رشته
strchr(s, c)جستجوی کاراکتر در رشته
strstr(s, sub)جستجوی زیررشته در رشته

مثال کامل

#include <stdio.h>
#include <string.h>

int main() {
    char first[50] = "Learning ";
    char last[] = "City";

    strcat(first, last);           // "Learning City"
    printf("Full: %s\n", first);
    printf("Length: %zu\n", strlen(first));

    if (strcmp(first, "Learning City") == 0) {
        printf("دقیقاً برابر است!");
    }

    return 0;
}

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط