Menu
Coddy logo textTech

שימוש ב־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.

challenge icon

אתגר

קל

כתוב תוכנית C שקוראת כמה מילים מהקלט ומנתחת את אורכן באמצעות הפונקציה strlen(). התוכנית שלך צריכה:

  1. לקרוא מספר שלם n שמייצג את מספר המילים לעיבוד
  2. עבור כל אחת מ־n המילים:
    • להכריז על מערך תווים המכיל 50 איברים כדי לאחסן את המילה
    • לקרוא את המילה באמצעות scanf
    • להשתמש ב־strlen() כדי לחשב את אורך המילה
    • להדפיס את המילה ואת אורכה בפורמט שצוין
  3. לאחר עיבוד כל המילים, לחשב ולהדפיס את המספר הכולל של התווים בכל המילים
  4. למצוא ולהדפיס את אורך המילה הארוכה ביותר שהתקבלה

זכור לכלול את הכותרת <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;
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C אונליין