PDA

צפייה בגרסה מלאה : מדריך מחרוזות (Strings) בשפת C



Tamir
06-09-2024, 11:13 PM
מחרוזות (Strings) בשפת C


ב-C, מחרוזת (String) היא מערך של תווים (Characters) שמסתיים תמיד בתו Null (סימן סיום מחרוזת) המסומן כ-`'\0'`. מחרוזות אינן סוג נתונים מובנה ב-C, ולכן יש לטפל בהן כמערך של תווים.


הגדרת מחרוזות


ניתן להגדיר מחרוזת בשני אופנים עיקריים:


1. הגדרת מערך תווים:

c
char str[20] = "Hello, World!";



2. שימוש במצביע למחרוזת קבועה:

c
char *str = "Hello, World!";



בשני המקרים, התוכן של `str` הוא המחרוזת "Hello, World!", אך בהגדרה הראשונה מוקצה זיכרון במערך בגודל 20 תווים, ואילו בהגדרה השנייה מדובר במצביע למחרוזת קבועה בזיכרון.


פונקציות נפוצות לעבודה עם מחרוזות


שפת C מספקת ספריה סטנדרטית (`string.h`) הכוללת מגוון פונקציות לטיפול במחרוזות. הנה מספר פונקציות נפוצות:


1. strlen – חישוב אורך המחרוזת (ללא תו ה-Null).

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


int main() {
char str[] = "Hello, World!";
printf("Length of the string: %lu\n", strlen(str)); // יוחזר 13
return 0;
}



2. strcpy – העתקת מחרוזת אחת לשנייה.

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


int main() {
char src[] = "Hello, World!";
char dest[20];


strcpy(dest, src); // העתקת תוכן src ל־dest
printf("Copied string: %s\n", dest);
return 0;
}



3. strcat – שרשור (חיבור) מחרוזת אחת לשנייה.

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


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


strcat(str1, str2); // חיבור str2 לסוף str1
printf("Concatenated string: %s\n", str1);
return 0;
}



4. strcmp – השוואת שתי מחרוזות.

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


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


if (strcmp(str1, str2) == 0) {
printf("Strings are equal\n");
} else {
printf("Strings are not equal\n");
}
return 0;
}



שימושים נוספים במחרוזות


- אתחול מחרוזות ריקות: ניתן לאתחל מחרוזת ריקה בעזרת `""`:

c
char empty[10] = "";



- קריאה ממחרוזת על ידי scanf:

c
#include <stdio.h>


int main() {
char name[50];
printf("Enter your name: ");
scanf("%s", name); // קריאת מחרוזת מהמשתמש
printf("Hello, %s!\n", name);
return 0;
}



סיכום


במדריך זה למדנו כיצד לעבוד עם מחרוזות בשפת C, הגדרת מחרוזות, ופונקציות נפוצות לטיפול בהן כמו `strlen`, `strcpy`, `strcat`, ו-`strcmp`. עבודה נכונה עם מחרוזות היא מיומנות בסיסית לכל מפתח C.


אם יש לכם שאלות נוספות, אתם מוזמנים לשאול! ?