עבור לתוכן

קליטת מילים ב-c.

Featured Replies

פורסם

שלום אני עושה תוכנה שקולטת מילה yes או no.

אם yes יש פלט טקסט כלשהו.

אם no יש פלט טקסט בהתאמה.

עכשיו איך אני יכול לעשות ככה שאני מגדיר משתנה ואז אם המשתנה שווה ל-yes זת' אומרת הקלט yes אז פלט אחד וההפך פלט אחר.

ניסיתי לעשות ולא הצלחתי כי הקומפיילר קורא את yes ן-no ששמתי ב-if כמשתנה שלא הוגדר.

ואת המשתה שהגדרתי הגדרתי ב-char.

תודה מראש לכל העוזרים.

פורסם

פשוט מאוד

char a[3];

if(a=='yes');

או להפך

if(a=='no');

פורסם

פשוט מאד לא נכון

קודם כל yes הוא מספר תוים ולכן צריך להיות עם מרכאות כפולות "yes"

דבר שני בשביל להשוות בין מחרוזות צריך להשתמש בפונקציה strcmp ואי אפשר להשתמש ב-== (שמשווה את הכתובות שלהם ולא את התוכן)

פורסם

יופי, אתה מתקן אותו עם עוד טעות.

ב- C אין טיפוס string, אלא יש לך מערך של תוים.

אתה משווה בין שתי מחרוזות (char* או char[]) עם פונקציות כמו strcmp או strncmp (מחזירות 0 אם המחרוזות שוות)

פורסם

יש גם את STRICMP בשביל אותיות גדולות וקטנות.

if(!strcmp(s1, "yes")

printf("yes");

else if (!stricmp(s1, "no")

printf("nooo");

פורסם

כמה הערות קטנות:

קודם כל, המערך שלתוכו אתה קורא את המילה צריך להיות גדול ב-1 מאורך המילה, כי הוא null-terminated.

חוץ מזה, strcmp ולא stricmp.

והערה אחרונה (ליתר דיוק, הסבר למה צריך להשתמש ב-!) - strcmp לא מחזיר bool, אלא מחזיר int.

אם המחרוזות שוות, הוא יחזיר 0.

אם המחרוזת הראשונה קודמת לשנייה לפי סדר מילוני, אז הוא יחזיר 1-.

אחרת הוא יחזיר 1.

(יכול להיות שהתבלבלתי בין שתי האפשרויות האחרונות.... תקנו אותי אם אני טועה)

פורסם

stricmp זוהי פונ כמו strcmp, רק שלא מתחשבת באותיות גדולות וקטנות.

למשל:

stricmp("HI", "hi) יתן 0.

פורסם

יופי, אתה מתקן אותו עם עוד טעות. :kopfpatsch:

ב- C אין טיפוס string, אלא יש לך מערך של תוים.

אתה משווה בין שתי מחרוזות (char* או char[]) עם פונקציות כמו strcmp או strncmp (מחזירות 0 אם המחרוזות שוות)

אתה צריך משקפיים אולי?

אני אמור שיש ב-C טיפוס string?

פורסם

נראה לי שהוא התכוון לזה שמעלייך.

בכל מקרה, הדיון הזה חתום.

פורסם
אתה צריך משקפיים אולי?

:kopfpatsch: (הפעם בשבילי)

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

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

פורסם

stricmp זוהי פונ כמו strcmp, רק שלא מתחשבת באותיות גדולות וקטנות.

ואללה, לא הכרתי את הפונקציה הזו.

אני לא בטוח שהיא חלק מהסטנדרט.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים