כותב |
|
efrat אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 15 May 2006 בשעה 17:27 | | IP רשוּם
|
|
|
|
שלום! מישהו יודע איך ממירים תו (charactar, כמו 'x') ל- int?
תודה!
|
חזרה לתחילת העמוד |
|
|
אורח אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 15 May 2006 בשעה 17:30 | | IP רשוּם
|
|
|
|
באיזו שפה מדובר ?
|
חזרה לתחילת העמוד |
|
|
efrat אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 15 May 2006 בשעה 17:30 | | IP רשוּם
|
|
|
|
C
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 15 May 2006 בשעה 18:12 | | IP רשוּם
|
|
|
|
i = (int) c; /* ? */
|
חזרה לתחילת העמוד |
|
|
AC-Milan משתמש חבר
הצטרף / הצטרפה: 27 July 2005
משתמש: מנותק/ת הודעות: 176
|
נשלח בתאריך: 15 May 2006 בשעה 20:16 | | IP רשוּם
|
|
|
|
קוד:
#include <stdio.h> int main() { char achar='1'; atoi(&achar); return 0; }
|
|
|
|
חזרה לתחילת העמוד |
|
|
daNN- אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 18 May 2006 בשעה 21:20 | | IP רשוּם
|
|
|
|
you cant do that.. char and int got diffrent bases.. Try to run it, ull see what i mean
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 18 May 2006 בשעה 23:09 | | IP רשוּם
|
|
|
|
atoi ימיר מספר ששמור כמחרוזת ל-int.
לגבי תו כמו 'x' זה חסר משמעות, ולכן ההנחה שלי הייתה שהוא רוצה לעשות
קאסטינג. קאסטינג עושים כמו שבתבתי. הרצתי והכל פועל מצויין. התוצאה כמובן
חסרת משמעות, אבל זו הייתה השאלה.
|
חזרה לתחילת העמוד |
|
|
daNN אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 19 May 2006 בשעה 21:11 | | IP רשוּם
|
|
|
|
אלצ'קו כתב:
atoi ימיר מספר ששמור כמחרוזת ל-int.
לגבי תו כמו 'x' זה חסר משמעות, ולכן ההנחה שלי הייתה שהוא רוצה לעשות
קאסטינג. קאסטינג עושים כמו שבתבתי. הרצתי והכל פועל מצויין. התוצאה כמובן
חסרת משמעות, אבל זו הייתה השאלה.
|
|
|
you can convert a single char with the atoi function.. just make a simple char var..
|
חזרה לתחילת העמוד |
|
|
מישו אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 20 May 2006 בשעה 01:18 | | IP רשוּם
|
|
|
|
daNN כתב:
אלצ'קו כתב:
atoi ימיר מספר ששמור כמחרוזת ל-int.
לגבי תו כמו 'x' זה חסר משמעות, ולכן ההנחה שלי הייתה שהוא רוצה לעשות
קאסטינג. קאסטינג עושים כמו שבתבתי. הרצתי והכל פועל מצויין. התוצאה כמובן
חסרת משמעות, אבל זו הייתה השאלה.
|
|
|
you can convert a single char with the atoi function.. just make a simple char var..
|
|
|
atoi הופך מחרוזת לערך המספרי שכתוב במחרוזת.... ולא תו לערך אסקי שלו... זה שני דברים שונים...
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 21 May 2006 בשעה 20:06 | | IP רשוּם
|
|
|
|
כפי ש"מישו" אמר: atoi מקבל מחרוזת, שהתוכן שלה הוא מספר, ומחזיר את המספר עצמו. אם התוכן איננו מספר, atoi יחזיר אפס. נסה קוד בסגנון:
קוד:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char c = 'x';
int i = atoi(&c);
printf("%d\n", &i);
return 0;
}
|
|
|
(לא קומפל, ככה שזהירות משגיאות קטנות)
|
חזרה לתחילת העמוד |
|
|
Fate פורומיסט על
הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת הודעות: 571
|
נשלח בתאריך: 24 May 2006 בשעה 21:48 | | IP רשוּם
|
|
|
|
אתה יודע שהוא הולך לסרוק לך את הזיכרון עד שיתקל בתו שהוא \0 אחרי הX... אם אתה רוצה מחרוזת בעלת תו אחד אז זה חייב להיות char c[2]... וc[1] = '\0';
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 13 August 2006 בשעה 01:13 | | IP רשוּם
|
|
|
|
כ'ה. הכוונה שלי הייתה:
קוד:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char s[] = "x";
int i = atoi(s);
printf("%d\n", i);
return 0;
}
|
|
|
|
חזרה לתחילת העמוד |
|
|
yiag משתמש פעיל
הצטרף / הצטרפה: 26 May 2006 מדינה: Israel
משתמש: מנותק/ת הודעות: 103
|
נשלח בתאריך: 13 August 2006 בשעה 09:39 | | IP רשוּם
|
|
|
|
בקיצור
אם אתה רוצה לקבל את הASCII של תו תכתוב i=(int)c
אם אתה רוצה את הערך שכתוב בו כלומר ש'1' יהפוך ל1 '2' ל2 וכו', תשתמש בatoi
|
חזרה לתחילת העמוד |
|
|
אלצ'קו אחראי פורומים
ג2ר פ33תי
הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת הודעות: 609
|
נשלח בתאריך: 13 August 2006 בשעה 10:31 | | IP רשוּם
|
|
|
|
לא כל כך הכרחי, הרי מה ששמור במשתנה מטיפוס char זה כבר קוד ה-ASCII.
פשוט כשאתה פולט מחרוזת ב-printf כ-"%s" הוא מפרש את קודי ה-ASCII ומדפיס
את התווים התואמים. אם תדפיס char בעזרת printf והקוד "%d" (אותו אחד
שהיית משתמש בו עבור ה-int) תקבל את אותו קוד ASCII...
הנה קוד (שבאמת פועל) שמדגים את זה:
קוד:
#include <stdio.h>
int main(void)
{
char s[] = "hello world!";
int i;
for (i=0; s; i++)
{
printf("%c", s);
}
printf("\n");
for (i=0; s; i++)
{
printf("%d - %c\n", s, s);
}
printf("\n");
return 0;
}
|
|
|
בקיצור, אין צורך להמיר
ל-int כדי לקבל את קוד ה-ASCII, כי int ו-char שניהם טיפוסים של מספרים
שלמים, וההמרה הזו בעצם לא משנה כלום. אותו קוד ASCII שהיה ב-char יהיה
ב-int.
|
חזרה לתחילת העמוד |
|
|