שימוש ב־strlen()
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 15 מתוך 63.
למדת איך לקרוא מחרוזות מקלט המשתמש, אבל עכשיו צריך דרך לקבוע מהו אורכן של המחרוזות האלה. C מספקת את הפונקציה strlen() מספריית <string.h> במיוחד למטרה הזאת.
הפונקציה strlen() סופרת את מספר התווים במחרוזת, ועוצרת כשהיא מגיעה לתו סיום המחרוזת הריק \0. חשוב לציין שהיא לא כוללת את תו סיום המחרוזת הריק בספירה שלה — היא סופרת רק את התווים הגלויים בפועל.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // מדפיס: Length: 5כדי להשתמש ב־strlen(), עליך לכלול את הכותרת <string.h> בראש התוכנית שלך. הפונקציה מקבלת מחרוזת כארגומנט ומחזירה מספר שלם המייצג את מספר התווים שלפני תו הסיום null.
הפונקציה הזו שימושית במיוחד כשצריך לדעת כמה מקום מחרוזת תופסת, לאמת את אורך הקלט או לבצע פעולות שתלויות בגודל המחרוזת. זו אחת מפונקציות המחרוזת הנפוצות ביותר בתכנות ב-C.
אתגר
קלכתוב תוכנית C שקוראת כמה מילים מהקלט ומנתחת את אורכן באמצעות הפונקציה strlen(). התוכנית שלך צריכה:
- לקרוא מספר שלם
nשמייצג את מספר המילים לעיבוד - עבור כל אחת מ־
nהמילים:- להכריז על מערך תווים המכיל 50 איברים כדי לאחסן את המילה
- לקרוא את המילה באמצעות
scanf - להשתמש ב־
strlen()כדי לחשב את אורך המילה - להדפיס את המילה ואת אורכה בפורמט שצוין
- לאחר עיבוד כל המילים, לחשב ולהדפיס את המספר הכולל של התווים בכל המילים
- למצוא ולהדפיס את אורך המילה הארוכה ביותר שהתקבלה
זכור לכלול את הכותרת <string.h> כדי להשתמש בפונקציה strlen().
הפלט שלך צריך להציג את התוצאות בפורמט הבא:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]לדוגמה, אם הקלט הוא:
3
hello
programming
Cהפלט שלך צריך להיות:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11האתגר הזה בוחן את ההבנה שלך בשימוש ב־strlen() למדידת אורכי מחרוזות, בעיבוד כמה מחרוזות באמצעות לולאות ובביצוע חישובים על סמך נתוני אורכי המחרוזות.
נסו בעצמכם
#include <stdio.h>
#include <string.h>
int main() {
// קראו את מספר המילים
int n;
scanf("%d", &n);
// משתנים למעקב אחר הסכומים הכוללים
int total_characters = 0;
int max_length = 0;
// TODO: כתבו את הקוד שלכם כאן
// עבדו כל מילה באמצעות לולאה
// עבור כל מילה:
// - הכריזו על מערך תווים עם 50 איברים
// - קראו את המילה באמצעות scanf
// - חשבו את האורך באמצעות strlen()
// - הדפיסו את המילה ואת אורכה
// - עדכנו את total_characters ואת max_length
// הדפיסו את התוצאות הסופיות
printf("Total characters: %d\n", total_characters);
printf("Longest word length: %d\n", max_length);
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1יסודות המצביעים
מהו מצביע?הכרזה על מצביעיםאופרטור לקיחת הכתובת (&)אופרטור ביטול ההפניה (*)מצביעי NULLסיכום: יסודות המצביעים2מצביעים ומערכים
שמות מערכים כמצביעיםאיברי מערך ומצביעיםאריתמטיקה של מצביעיםהשוואת מצביעיםסיכום: מעבר על מערך באמצעות מצביעים5מצביעים ופונקציות
העברה לפי ערךהעברת מצביעים לפונקציותשינוי משתנים באמצעות מצביעיםדוגמה קלאסית: החלפההעברת מערכים לפונקציותחזרה: ארגומנטים של מצביעי פונקציה3מערכי תווים ומחרוזות
מחרוזות כמערכי charתו הסיום nullקלט מחרוזת באמצעות scanfשימוש ב־strlen()שימוש ב־strcpy()שימוש ב־strcat()שימוש ב־strcmp()סיכום: פונקציות מחרוזת בסיסיותתרגלו בעצמכם: קומפיילר C אונליין