עבור לתוכן

הפיכת מערך של תווים למערך מסוג int , איך עושים ? (שפת C)

Featured Replies

פורסם

יש לי מערך שבכל תא יש מספר אבל זה מערך שנקלט באמצעות הפונקציה

()gets

ולכן הוא מערך של תווים

אני רוצה להפוך/להעביר למערך שהוא מסוג int את התאים כמו שהם

כלומר שאם בתא 0 של המערך X יש את הערך "4"

אז בתא 0 של המערך Y יהיה את הערך 4 .

איך עושים את זה?

תודה לעוזרים

פורסם
  • מחבר

שניצל איש יקר,

נראה לי שלא הבנת אותי

אני מדבר נניח




char userGuessNumber[4]={'1','2','3','4'} ;

אז אני רוצה להפוך את כל המערך...למערך מסוג INT

פורסם

char charArr[N] = ....;
int intArr[N];
for(int i = 0; i < N; ++i){
intArr[i] = charArr[i] - '0';
}

פורסם
  • מחבר

תודה זה עובד !

עוד שאלה , מה בדיוק עושה ה " 0 - " ?

פורסם

תו בכל שפה (לפחות אלו שאני יודע) מוצג באמצעות קוד האסקי שלו (ראה גוגל - ASCII table).

יש בו חוקיות מסויימת כאשר התו 0 שווה לאסקי X, תו 1 שווה לאסקי (X+1), תו 2 שווה לאסקי (X+2) וכו' (מצטער אני לא זוכר את הערכים כרגע).

בשביל לקבל את התו אסקי במספר אתה שם את התו בגרש בודד ('a' - יתן לך את היצוג המספרי של התו a בטבלת אסקי).

ומפה הלאה זה חשבון פשוט: כיוון שההפרש בין אסקי 0 לאסקי 4 לדוגמא, הוא 4 אז כאשר אתה תסחר מהאסקי של 0 את האסקי של 4 אתה תקבל 4 כמספר.

מקווה שהבנת אותי :)

עריכה:

לצורך דיוק האסקי של 0 הוא 48, 1 - 49, 2 - 50, וכו'.

וכמו שאמרתי:


'4' - '0' = 52 - 48 = 4

פורסם

אפשר למחוק, לא הגבתי מספיק מהר הפעם

פורסם

תו בכל שפה (לפחות אלו שאני יודע) מוצג באמצעות קוד האסקי שלו (ראה גוגל - ASCII table).

רק הערה קטנה - יש שפות (כמו #C) שבהן תו הוא לא ב-ASCII אלא UTF16. אבל כיוון ש-UTF16 הוא תואם ASCII (כלומר התווים שמיוצגים ע"י המספרים 0 עד 127 הם כמו ב-ASCII) השיטה הזו עדיין עובדת.

ארכיון

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

דיונים חדשים