توابع رشته ای در زبان C

در زبان برنامه نویسی C برای استفاده از تابع های مختلف ابتدا باید کتابخانه آن را فراخوانی کنید. برای مثال برای استفاده از توابع رشته ای بغیر از کتابخانه اصلی زبان C <stdio.h> باید کتابخانه <string.h> را در ابتدای برنامه فراخوانی کنید.

#include <string.h>

طول رشته در زبان C

برای بدست آوردن طول یک رشته از تابع strlen() استفاده می شود.

#include <stdio.h>
#include <string.h>
 
int main() {
  char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  printf("%d", strlen(alphabet));
  return 0;
}

در فصل گذشته در بخش رشته ها با تابع sizeof() آشنا شدیم.

اما در اینجا برای بدست آوردن طول رشته از تابع strlen() استفاده کردیم. این دو تابع با هم متفاوت هستند.

تابع sizeof() شماره اندیس 0 را هم شمارش می کند اما تابع strlen() تنها تعداد کاراکترهای موجود در یک آرایه را بر می گرداند.

#include <stdio.h>
#include <string.h>
 
int main() {
  char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  printf("Length is: %d\n", strlen(alphabet));
  printf("Size is: %d\n", sizeof(alphabet));
  return 0;
}

و همچنین قبل تر آموختیم که تابع sizeof() اندازه حافظه استفاده شده بر حسب بایت را نمایش می دهد.

#include <stdio.h>
#include <string.h>
 
int main() {
  char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  printf("Length is: %d\n", strlen(alphabet));
  printf("Size is: %d\n", sizeof(alphabet));
  return 0;
}

روش ترکیب کردن رشته ها در زبان C

برای ترکیب کردن دو رشته با هم از تابع strcat() استفاده می کنیم.

#include <stdio.h>
#include <string.h>
 
int main() {
  char str1[20] = "Hello ";
  char str2[] = "World!";
 
  // str2 را به str1 متصل کردیم و نتیجه را در str1 ذخیره کردیم
  strcat(str1, str2);
  
  // نمایش str1
  printf("%s", str1);
 
  return 0;
}

برای اینکه بتوانیم از متغیر strcat() استفاده کنیم، باید متغیر دوم را در متغیر اول ذخیره کنیم، سپس مقدار را نمایش دهیم.

برای این کار باید مقدار داده متغیر اول و دوم را محاسبه کنیم و اندازه داده قابل ذخیره را در متغیر اول مشخص کنیم، که ما در اینجاد عدد 20 (بیشتر از اندازه مقدار داده ها) را تعیین کرده ایم.

کپی کردن رشته ها در زبان C

برای کپی کردن یک رشته در یک متغیر دیگر از تابع strcpy() استفاده می کنیم.

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

int main() {
  char str1[20] = "Hello World!";
  char str2[20];

  // str1 را در str2 کپی کردیم
  strcpy(str2, str1);

  // نمایش str2
  printf("%s", str2);
  
  return 0;
}

در اینجا هم، قبل از کپی کردن یک رشته در متغیر دیگر، باید ظرفیت متغیر دوم را به اندازه داده کپی شده یا بیشتر ایجاد کنیم.

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

برای مقایسه دو رشته می توان از تابع strcmp() استفاده کرد.

اگر هر دو رشته برابر باشند مقدار 0 و اگر دو رشته با هم برابر نباشند مقداری غیر از 0 را نمایش می دهد.

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

int main() {
  char str1[] = "Hello";
  char str2[] = "Helli";
  char str3[] = "Hi";

  // str1 و str2 را مقایسه کردیم و نتیجه را نمایش دادیم
  printf("%d\n", strcmp(str1, str2));
  
  // str1 و str3 را مقایسه کردیم و نتیجه را نمایش دادیم
  printf("%d\n", strcmp(str1, str3));
  
  return 0;
}
توسعه دهندگان
امین آهن کوبی