עזרה בפונקציה רקורסיבית עם מחרוזת (C) - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בפונקציה רקורסיבית עם מחרוזת (C)


lina12
 Share

Recommended Posts

שלום,
אני כבר ממש מיואשת אז אשמח לעזרה בשאלה (שפת C).
אני צריכה לכתוב פונקציה רקורסיבית (בלי מצביעים) שקולטת מחרוזת למערך (עד 100 תווים) ומדפיסה אותה בסדר ההפוך ורק את האותיות ללא התווים.
תודה רבה!

קישור לתוכן
שתף באתרים אחרים

ציטוט של af db creid

שלום רב.

 

ובכן -

א. האם הפונקציה הרקורסיבית עצמה צריכה לקלוט את הטקסט או בנפרד ממנה?

ב. מה ניסית עד כה? במה את צריכה עזרה?

צריך לקלוט טקסט מהmain ואז להפעיל את הפונקציה.

בגדול הצלחתי לעשות את זה בלי מערך. הבעיה היא שיש הגבלה ל100 תווים ככה שאני די בטוחה שהדרך היחידה היא במערך.

נערך על-ידי lina12
קישור לתוכן
שתף באתרים אחרים

לא הצלחתי להבין את התרגיל.

יש לך מערך של char בעל 100 תווים ?

ככה:

char szInput[100];

לא ?

רקרוסיבי הכוונה שהפונקציה יכול לקרוא לעצמה. אז נניח שהפונקציה תקרא לעצמה עד תנאי מסויים, למשל תו יציאה או אנטר או משהו דומה.

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

אבל את אומרת משהו אחר שלא מסתדר, הפונקציה מקבלת את התווים ...? קצת יצאתי מבולבל

קישור לתוכן
שתף באתרים אחרים

ציטוט של Jabberwock

לא הצלחתי להבין את התרגיל.

יש לך מערך של char בעל 100 תווים ?

ככה:



char szInput[100];

לא ?

רקרוסיבי הכוונה שהפונקציה יכול לקרוא לעצמה. אז נניח שהפונקציה תקרא לעצמה עד תנאי מסויים, למשל תו יציאה או אנטר או משהו דומה.

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

אבל את אומרת משהו אחר שלא מסתדר, הפונקציה מקבלת את התווים ...? קצת יצאתי מבולבל

אני צריכה לקלוט את התווים קודם כל, ואז להפעיל את הפונקציה ולשנות את הסדר שלהם ולקלוט רק את האותיות בלי המספרים והתווים שיכולים להיות במערך. בעיקר לא ברור לי מה עושים בתוך הפונקציה עם המערך. איך מדפיסים ואיך קולטים?

נערך על-ידי lina12
קישור לתוכן
שתף באתרים אחרים

ציטוט של Jabberwock

תו יכול להיות או מספר או אות או תו מיוחד למשל דולר, כוכבית וכו'.

לא הבנתי את המשפט שלך

נכון, אבל אני צריכה מתוך המערך להדפיס רק את התווים שהם אותיות.

קישור לתוכן
שתף באתרים אחרים

ציטוט של lina12

נכון, אבל אני צריכה מתוך המערך להדפיס רק את התווים שהם אותיות.

הבנתי. אוקיי אז בשביל לדעת איך עושים את התנאי הזה צריך להכיר את טבלת ASCII.

https://he.wikipedia.org/wiki/ASCII

http://www.asciitable.com/

כפי שאפשר לראות מהטבלה אותיות A עד Z גדולות מסודרות אחת אחרי השנייה והאותיות הקטנות גם כן אז בשביל לבדוק אם קיבלנו אות, עושים כך:

int main()
{
    char val;
    cin >> val;
    
    if (val >= 'A' && val <= 'Z' || val >= 'a' && val <= 'z')
        cout << "yes we got a letter and not a number";
    else cout << "we didn't get a letter!";
}

 

קישור לתוכן
שתף באתרים אחרים

ציטוט של Jabberwock

הבנתי. אוקיי אז בשביל לדעת איך עושים את התנאי הזה צריך להכיר את טבלת ASCII.

https://he.wikipedia.org/wiki/ASCII

http://www.asciitable.com/

כפי שאפשר לראות מהטבלה אותיות A עד Z גדולות מסודרות אחת אחרי השנייה והאותיות הקטנות גם כן אז בשביל לבדוק אם קיבלנו אות, עושים כך:


int main()
{
    char val;
    cin >> val;
    
    if (val >= 'A' && val <= 'Z' || val >= 'a' && val <= 'z')
        cout << "yes we got a letter and not a number";
    else cout << "we didn't get a letter!";
}

 

שתלמד איך להשתמש בספרייה הסטנדרטית! מיומנות חשובה!

#include <ctype.h> // or <cctype> for C++
  
isalpha(ch)

 

קישור לתוכן
שתף באתרים אחרים

ציטוט של af db creid

טוב.

קודם כל - מה ניסית. הכי קל לתת לך תוכנית מוכנה, אבל יותר יועיל לך אם נכוון אותך. מה הכיוונים שלך? על מה חשבת?

מה פירוש "בלי מצביעים"? אלא איך? עם מערכים?

צריך לעשות עם מערכים. בגדול הצלחתי לעשות את זה בלי מערך. אבל כשניסיתי להפוך את זה למערך הכל התבלבל לי שם. ואת העניין עם האותיות אני יודעת איך לעשות אני פשוט לא מצליחה לסדר את זה ככה שזה ירוץ כמו שצריך.

נערך על-ידי lina12
קישור לתוכן
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • צור חדש...