ערכתי לאחרונה בתאריך 05.06.09 בשעה 00:56 בברכה, חומוס
אני צריך לבנות פונקציה בוליאנית שבודקת אם מחרוזת מסויימת היא פלינדרום (ביטוי שאפשר לקרוא אותו דבר משני הצדדים - 1221, abcba וכו')
הבעייה (בשבילי לפחות..) היא שיש להתייחס כאות גדולה כמו לאות קטנה ולהפך
כלומר הביטוי הבא לדוגמא: A22322a הוא פלינדרום.
בקיצור מה שאני עשיתי זה להתחכם קצת.. לקחתי מחרוזת קיימת והפכתי
בה את כל האותיות הקטנות לגדולות ואז שלחתי את המחרוזת החדש לפונקציה
הרקורסיבית שתבדוק האם זה פלינדרום או לא.אין לי שמץ של מושג איך להשוות בין אותיות גדולות לקטנות תוך כדי
הבדיקה... אשמח אם תתנו לי איזשהו כיוון
#include <ctype.h> int string_is_palindrom (char *str,int lenght); void main() { int i; char palindrom; char palindrom1; gets (palindrom); for (i=0;i<10;i++) if (islower(palindrom)) palindrom1=toupper(palindrom); else palindrom1=palindrom; if (string_is_palindrom(palindrom,9)) printf ("It is a palindrom\n"); else printf ("It is not a palindrom\n"); } int string_is_palindrom (char *str,int lenght) { if (lenght<2) return 1; if (*str != *(str+lenght-1)) return 0; return string_is_palindrom(str+1,lenght-2); }
|
כמו כן, איך אני יכול לקבוע גודל מדוייק של מחרוזת שהמשתמש יכניס בעצמו?
נניח המשתמש החליט שהוא רוצה מחרוזת בגודל 8... איך אני יכול לגרום למחרוזת להיות באמת בגודל של 8? הרי זה לא מערך רגיל שאני מכניס אליו מספר אחרי מספר ואז אני יכול לעשות הגבלה...
תודה!