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.
אם יש לכם שאלות נוספות, אתם מוזמנים לשאול! ?
ב-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.
אם יש לכם שאלות נוספות, אתם מוזמנים לשאול! ?