הפיכת CHAR ל INT

ogispan

New member
הפיכת CHAR ל INT

יש לי משתנה מסוג CHAR שמכיל את המחרוזת 100 ויש לי משתנה INT. אני רוצה לעשות ש INT יקבל את המספר שמופיע בתוך ה CHAR כלומר ש INT יהיה שווה למספר 100. איך אני עושה את זה? (מדובר בשפה C++) תודה רבה
 

אמיר ט

New member
יש כמה דרכים

נתחיל בזה שיש לך char* כי char בודד לא יכול להכיל 100 (אתה צריך char לכל ספרה, אם אכן זה סטרינג). הדרך הישנה הטובה :
char c[4] = "100"; int n = atoi(c);​
 

ASHY

New member
אולי בC אם לא אכפת לך....

אפשר להשתמש ככה: בספרייה: stdio.h
char a[]="100"; int b; sscanf(a,"%d",&b);​
עובד בדיוק כמו scanf רק עם s בתחלה וגם מקבל מחרוזת ולא קלט מהמסך
 

Scop

New member
וואו... להרוג זבוב עם טיל גרעיני..

לא הבנתי את הקטע של "אולי בC" .. אבל.. למה להסתבך עם סקאןאף לדבר כה פשוט? מה רע לך הatoi ?
 

ררדד

New member
בפסקל זה הולך ככה:

קיימת פרוצדורה val שעובדת כך:
val(str,int,i);​
הפרוצדורה ממירה את המחרוזת str למשתנה מספרי int. אם המחרוזת הומרה אז i יכיל את הערך אפס. ם המחרוזה לא הומרה אז i יכיל את מיקום התו שהפריע להמרה (אם למשל באמצע המספר היה "-" ככה למשל: 03-1234 אז i יכיל את הערך 3). אין לי שום מושג אם זה תקף לc++..
 
למעלה