פורסם 2012 בינואר 613 שנים שלום יש לי תרגיל ב-C לקליטת מחרוזות, ואסור שהמחרוזת תכיל מספרים.קליטת המחרוזת אני עושה בעזרת gets והבעיה היא שאני לא יודע איך אני נותן תנאי שלא יכיל מספרים.אשמח מאוד לעזרה, בברכה שי.
פורסם 2012 בינואר 613 שנים אין דרך יותר פשוטה מלעבור תו אחר תו ולבדוק כל תו אם הוא מספר (תשתמש בפונקציה isdigit).
פורסם 2012 בינואר 613 שנים מחבר אני מנסה לעשות את זה ותראה מה קורה, אף פעם לא השתמשתי בפונקציה הזאת.והוספתי את התיקיות <ctype.h> ו<stdlib.h>[attachment deleted by admin]
פורסם 2012 בינואר 613 שנים מחבר הבעיה היא שאני לא יודע מה הגודל של המחרוזת, מדובר במחרוזת בגודל אין סופי של מילים כאשר כל מילה מוגבלת בכמות מסוימת של אותיות.כל ההתחלה שלי בכלל דפוקה שאני לא מצליח להקצות מחרוזת בגודל אין סופי.
פורסם 2012 בינואר 613 שנים האם מחייבים אותך להשתמש בgets?הפונקציה הזאת מוגדרת כ-deprecated בסטנדרד החדש של C ולא מומלץ להשתמש מסיבות של אבטחת תוכנה (דריסות זיכרון, חריגה ממה שהוקצה וכו')תשתמשת בgetchar ולולאה ותבדוק תו-תו אם הוא ספרה או לא.
פורסם 2012 בינואר 613 שנים מחבר לא , אני לא מחויב, ניסיתי את gets כי זה מה שאני מכיר חוץ מscanf שאני מבין שלא עוזר לי כאן.הבעיה שלי היא ההתחלה של כל התרגיל, איך אני מקצה מחרוזת של מספר אין סופי של מילים כאשר כל מילה מוגבלת במספר אותיות הידוע לי?
פורסם 2012 בינואר 613 שנים בבירור אין כזה דבר מחרוזת אינסופית. המחשב הוא דבר סופי.אתה יכול להקצות מערך בגודל התחלתי כלשהו, ואז להקצות מחדש את את המערך בגודל כפול (באמצעות realloc) כל פעם שנגמר לך המקום.ולגבי הלולאה שלך: אתה רוצה שהלולאה תעבור מתחילת המחרוזת ועד סופה. ב-C, מחרוזות הן null-terminated, כלומר סוף המחרוזת מצוין ע"י התו '0\'.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.