Menu
Coddy logo textTech

המרה לאותיות גדולות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 23 מתוך 63.

challenge icon

אתגר

קל

הרחב את תוכנית כלי הטקסט שלך מהשיעור הקודם והוסף יכולת להמיר לאותיות גדולות. התוכנית שלך צריכה:

  1. לבקש מהמשתמש להזין משפט קצר באמצעות הדפסת: Enter a sentence: (ללא ירידת שורה בסוף)
  2. להכריז על מערך תווים בשם sentence עם 200 איברים כדי לאחסן את הקלט
  3. להשתמש ב-scanf עם מציין הפורמט %s כדי לקרוא מילה אחת מהמשתמש
  4. להדפיס את המילה המאוחסנת בתבנית: You entered: [word]
  5. להשתמש ב-strlen() כדי לחשב את מספר התווים הכולל במילה
  6. להדפיס את מספר התווים בתבנית: Character count: [count]
  7. להדפיס את האורך באמצעות strlen() בתבנית: Length: [length]
  8. לעבור על כל תו במילה באמצעות לולאה כדי לספור תנועות
  9. לבדוק עבור כל תו אם הוא תנועה (a, e, i, o, u), הן באותיות קטנות והן באותיות גדולות
  10. לנהל ספירה מצטברת של התנועות שנמצאו
  11. להדפיס את מספר התנועות בתבנית: Vowel count: [count]
  12. להדפיס Uppercase: ולאחר מכן להשתמש בלולאה כדי להמיר כל תו במילה לאות גדולה ולהדפיס אותו באמצעות הפונקציה toupper()

זכור לכלול את הכותר <string.h> כדי להשתמש בפונקציה strlen(), ואת הכותר <ctype.h> כדי להשתמש בפונקציה toupper().

על toupper():
הפונקציה toupper() מתוך <ctype.h> ממירה תו יחיד לאות הגדולה המקבילה לו. אם התו כבר אות גדולה או אינו אות, הוא מוחזר ללא שינוי.
דוגמה: toupper('a') מחזירה את 'A', ו-toupper('Z') מחזירה את 'Z'.
אפשר להשתמש בה בתוך לולאה כדי להמיר כל תו בנפרד: printf("%c", toupper(sentence[i]));

חשוב: אחרי ההנחיה Enter a sentence: לא צריכה להופיע ירידת שורה. השתמש ב-printf("Enter a sentence: "); ללא \n.

הפלט שלך צריך להציג את התוצאות בתבנית הבאה:

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

לדוגמה, אם הקלט הוא:

Programming

הפלט שלך צריך להיות:

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

האתגר הזה מתבסס על השיעור הקודם ומוסיף יכולת להמיר לאותיות גדולות באמצעות הפונקציה toupper() מהספרייה <ctype.h>. יהיה עליך להשתמש בלולאה כדי לעבור על כל תו במחרוזת ולהמיר אותו לאות גדולה, ואז להדפיס את התוצאה שהתקבלה.

נסו בעצמכם

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

int main() {
    printf("Enter a sentence: \n");
    
    char sentence[200];
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int char_count = strlen(sentence);
    printf("Character count: %d\n", char_count);
    
    int length = strlen(sentence);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < strlen(sentence); i++) {
        char c = sentence[i];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            vowel_count++;
        }
    }
    
    printf("Vowel count: %d\n", vowel_count);
    
    return 0;
}

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

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