رشته ها یا Strings در چندین زبان برنامه نویسی استفاده می شوند اما در زبان C، برای مدیریت و ویرایش داده های متنی حیاتی هستند. تابع رشته ای زبان C به برنامه نویسان اجازه می دهد تا رشته ها را دستکاری کنند و با سربرگ <string.h>، رشته ها را در یک مکان کپی، ویرایش و مقایسه نمایند. در این مقاله، 10 تابع String که برنامه نویسان C باید از آنها استفاده کنند، مورد بررسی قرار می گیرد.
تصویر(1)
توابع رشته ای <string.h> در C
رشته ها یا Strings، دنباله ای از کاراکترهای ذخیره شده در یک آرایه هستند. از توابع زیر برای دستکاری انواع تابع رشته ای زبان C استفاده می شود.
1. کپی رشته: ()strncpy
این تابع تعداد مشخصی از کاراکترها را از یک String به String دیگر کپی می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char source[] = "Hello, World!";
char destination[20];
strncpy(destination, source, 5);
destination[5] = '\0'; // Ensure null-termination
printf("strncpy(): %s\n", destination);
return 0;
}
خروجی:
strncpy(): Hello
2. اتصال رشته ها: ()strncat
این تابع رشته ای زبان C، تعداد مشخصی از کاراکترها را از رشته دوم به رشته اول متصل می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello, ";
char str2[] = "World!";
strncat(str1, str2, 3);
printf("strncat(): %s\n", str1);
return 0;
}
خروجی:
strncat(): Hello, Wor
3. مقایسه رشته ها: ()strncmp
این تابع تعداد مشخصی از کاراکترها را بین دو رشته مقایسه می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char str3[] = "apple";
char str4[] = "appetizer";
int result = strncmp(str3, str4, 4);
printf("strncmp(): %d\n", result);
return 0;
}
خروجی:
strncmp(): 7
4. اولین مکان یک کاراکتر: ()strchr
این تابع اولین مکان یک کاراکتر در رشته را تعیین می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char sentence[] = "This is a sample sentence.";
char *ptr = strchr(sentence, 'a');
printf("strchr(): %s\n", ptr);
return 0;
}
خروجی:
strchr(): a sample sentence.
5. آخرین مکان کاراکتر: ()strrchr
این تابع رشته ای زبان C، آخرین مکان یک کاراکتر در رشته را تعیین می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char sentence[] = "This is a sample sentence.";
char *lastPtr = strrchr(sentence, 'a');
printf("strrchr(): %s\n", lastPtr);
return 0;
}
خروجی:
strrchr(): ample sentence.
6. جستجوی رشته: ()strstr
این تابع اولین مکان یک substring یا زیر رشته را در رشته ای بزرگتر جستجو می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char text[] = "The quick brown fox jumps over the lazy dog.";
char *substr = strstr(text, "fox");
printf("strstr(): %s\n", substr);
return 0;
}
خروجی:
strstr(): fox jumps over the lazy dog.
7. تقسیم رشته: ()strtok
این تابع، رشته ها را بر اساس یک جداکننده خاص، تقسیم می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char sentence[] = "This is a sample sentence";
char *token = strtok(sentence, " ");
while (token != NULL) {
printf("strtok(): %s\n", token);
token = strtok(NULL, " ");
}
return 0;
}
خروجی:
strtok(): This
strtok(): is
strtok(): a
strtok(): sample
strtok(): sentence
8. تبدیل رشته به حروف کوچک: ()strlwr
این تابع یک رشته را به حروف کوچک تبدیل می کند. توجه داشته باشید، تابع مذکور در کتابخانه استاندارد گنجانده نشده است.
مثال:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void toLowerCase(char *str) {
for (int i = 0; str[i]; i++) {
str[i] = tolower((unsigned char)str[i]);
}
}
int main() {
char str5[] = "LoWeRcAsE";
toLowerCase(str5);
printf("strlwr(): %s\n", str5);
return 0;
}
خروجی:
strlwr(): lowercase
9. تبدیل رشته به حروف بزرگ: ()strupr
این تابع یک رشته را به حروف بزرگ تبدیل می کند. توجه داشته باشید، این تابع در کتابخانه استاندارد گنجانده نشده است.
مثال:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void toUpperCase(char *str) {
for (int i = 0; str[i]; i++) {
str[i] = toupper((unsigned char)str[i]);
}
}
int main() {
char str6[] = "UpperCase";
toUpperCase(str6);
printf("strupr(): %s\n", str6);
return 0;
}
خروجی:
strupr(): UPPERCASE
10. تکرار رشته: ()strdup
این تابع یک رشته را کپی می کند.
مثال:
#include <stdio.h>
#include <string.h>
int main() {
char original[] = "Original String";
char *duplicate = strdup(original);
printf("strdup(): %s\n", duplicate);
return 0;
}
خروجی:
strdup(): Original String
جمع بندی: استفاده از تابع رشته ای زبان C
تصویر(2)
انواع تابع رشته ای زبان C، به شما کمک میکنند تا کارهای مختلفی از تغییرات ساده در متن تا تجزیه و تحلیل دادههای پیچیده را انجام دهید. درک نحوه کپی کردن، محاسبه طول، اتصال و مقایسه رشته ها دنیایی از امکانات را برای تغییر و پردازش داده ها باز می کند. این لیست از توابع را در دسترس داشته باشید و از آن برای ارتقاء مهارت های برنامه نویسی C خود به سطوح جدید، استفاده کنید.