עבור לתוכן

בעיה עם הדפסת string ב C

Featured Replies

פורסם

יש לי string שמכיל בתוכו מספרים. למשל "1041" ואני צריך להדפיס אותו שיראה כך: "001041" זאת אומרת שכל מספר שיש לי ב string ייוצג על ידי 6 תווים בהדפסה. כרגע זה מדפיס לי למשל "0" ואני צריך שידפיס "000000"

נסיתי עם strtol אבל זה לא מצליח לי. יש למישהו רעיון?

תודה.

פורסם

printf("%06s", str);

ה-6 אומר לו לרפד את המחרוזת ככה שהיא תהיה לפחות ברוחב 6, וה-0 אומר לרפד ע"י אפסים (ברירת המחדל היא רווחים).

חוץ מזה, יכלת גם לבדוק את אורך המחרוזת באמצעות strlen ואם הוא קטן מ-6, אז להדפיס מספיק אפסים בהתאם.

פורסם
  • מחבר

ניסיתי מה שאמרת אבל זה עושה לי רק רווחים ולא מוסיף אפסים למחרוזת....

פורסם

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

באיזה קומפיילר אתה משתמש?

נסה להמיר את המחרוזת למספר עם atoi ואז להדפיס עם %06d.

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

פורסם

חוץ מזה, יכלת גם לבדוק את אורך המחרוזת באמצעות strlen ואם הוא קטן מ-6, אז להדפיס מספיק אפסים בהתאם.

זה פשוט וקל. לולאת for שרצה מאורך המחרוזת ועד 6 (כולל) ומדפיסה אפסים.

פורסם
  • מחבר

עבד עם atoi

תודה.

ארכיון

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

דיונים חדשים