המרה לאותיות גדולות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 23 מתוך 63.
אתגר
קלהרחב את תוכנית כלי הטקסט שלך מהשיעור הקודם והוסף יכולת להמיר לאותיות גדולות. התוכנית שלך צריכה:
- לבקש מהמשתמש להזין משפט קצר באמצעות הדפסת:
Enter a sentence:(ללא ירידת שורה בסוף) - להכריז על מערך תווים בשם
sentenceעם 200 איברים כדי לאחסן את הקלט - להשתמש ב-
scanfעם מציין הפורמט%sכדי לקרוא מילה אחת מהמשתמש - להדפיס את המילה המאוחסנת בתבנית:
You entered: [word] - להשתמש ב-
strlen()כדי לחשב את מספר התווים הכולל במילה - להדפיס את מספר התווים בתבנית:
Character count: [count] - להדפיס את האורך באמצעות
strlen()בתבנית:Length: [length] - לעבור על כל תו במילה באמצעות לולאה כדי לספור תנועות
- לבדוק עבור כל תו אם הוא תנועה (a, e, i, o, u), הן באותיות קטנות והן באותיות גדולות
- לנהל ספירה מצטברת של התנועות שנמצאו
- להדפיס את מספר התנועות בתבנית:
Vowel count: [count] - להדפיס
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;
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1יסודות המצביעים
מהו מצביע?הכרזה על מצביעיםאופרטור לקיחת הכתובת (&)אופרטור ביטול ההפניה (*)מצביעי NULLסיכום: יסודות המצביעים2מצביעים ומערכים
שמות מערכים כמצביעיםאיברי מערך ומצביעיםאריתמטיקה של מצביעיםהשוואת מצביעיםסיכום: מעבר על מערך באמצעות מצביעים5מצביעים ופונקציות
העברה לפי ערךהעברת מצביעים לפונקציותשינוי משתנים באמצעות מצביעיםדוגמה קלאסית: החלפההעברת מערכים לפונקציותחזרה: ארגומנטים של מצביעי פונקציה3מערכי תווים ומחרוזות
מחרוזות כמערכי charתו הסיום nullקלט מחרוזת באמצעות scanfשימוש ב־strlen()שימוש ב־strcpy()שימוש ב־strcat()שימוש ב־strcmp()סיכום: פונקציות מחרוזת בסיסיותתרגלו בעצמכם: קומפיילר C אונליין