פורסם 2005 בפברואר 620 שנים היי !יש לי מערך מסוג char, למשל: {'1', '2'} ואני רוצה להפכו למספר (21) באופן בהבא://temp1.cppint main(){ char myInts[3] = {'0','2','\0'}; int myChars = myInts; return 0;}כמובן ש int myChars = myInts;זו טעות, אך האם קיימת פונקציה כלשהי או שיטה להפוך מערך אלפא נומרי של ספרות למספר ?תודה !
פורסם 2005 בפברואר 620 שנים יותר נכון יהיה להוריד '0' ולא את המספר המפורש.מעבר לזה, אם מדובר במחרוזת (כלומר מערך chars שמסתיים ב-0) אז יש כבר פונ' מוכנה. לא זוכר את שמה אבל אם תרצה אני אנסה לבדוק.עריכה:בקריאה שניה אני מבין מהדוגמא שלך שמדובר באמת במחרוזת ולא "סתם" מערך CHARS.חוצמזה מצאתי את הפונ' - היא נקראת atoi.
פורסם 2005 בפברואר 620 שנים אוף אכזבו אותי...(ובאמת עדיף להוריד '0', זה הכי חכם)אני לא יודע C++ אלא רק C, אבל לכתוב פונקציה כזאת לא צריך להיות מסובךn כמובן זהו הגודל של המערך של התווים שאתה רוצה להפוך לint (כמובן שאפשר לגלות אותו, הפונקציה מניחה שהיא מקבלת אותו)int char_to_int(char[],n)int i;int x=0;for (i=0;i<n;i++){if char[i]='0'x=x*10;if char[i]='1'x=x*10+1;if char[i]='2'x=x*10+2;if char[i]='3'x=x*10+3;if char[i]='4'x=x*10+4;if char[i]='5'x=x*10+5;if char[i]='6'x=x*10+6;if char[i]='7'x=x*10+7;if char[i]='8'x=x*10+8;if char[i]='9'x=x*10+9;}return x;
פורסם 2005 בפברואר 620 שנים אני אוהב לכתוב דברים מ0...אז הנה בבקשה:#include <iostream>using namespace std;int alpha_char_size(char*);void main(){ char cnum[] = {'1','2','3'}; int sz = alpha_char_size(cnum)-1; int count=0; int mul=1; int sum=0; while (count<=sz) { sum+=((int)cnum[sz-count]-48)*mul; count++; mul*=10; } cout<<sum;}int alpha_char_size(char *chr) //counting function{int counter=0; while (*chr!='\0') { counter++; chr++; } return counter/3;}
פורסם 2005 בפברואר 620 שנים #include <stdio.h>int main(){ //char str[3] = {'3','2','\0'}; // the same as: char str[3] = "32"; //Nice feature of C. int myint = atoi(str); //It's better to use strtol(str, (char **)NULL, 10); (more error checking printf("%d\n", myint); return 0;}
פורסם 2005 בפברואר 620 שנים #include <stdio.h> int main() { //char str[3] = {'3','2','\0'}; // the same as: char str[3] = "32"; //Nice feature of C. int myint = atoi(str); //It's better to use strtol(str, (char **)NULL, 10); (more error checking printf("%d\n", myint); return 0; } יש לך טעות קטנה(וחלקית)....בהסברים. //char str[3] = {'3','2','\0'}; // the same as: char str[3] = "32"; //Nice feature of C. תבדוק אותם לרגע עם sizeof
פורסם 2005 בפברואר 620 שנים יש לך טעות קטנה(וחלקית)....בהסברים. //char str[3] = {'3','2','\0'}; // the same as: char str[3] = "32"; //Nice feature of C. תבדוק אותם לרגע עם sizeof #include <stdio.h> int main() { char a[] = "32"; char b[] = { '3', '2', '\0' }; if (sizeof(a) == sizeof(b)) printf("Hello Wolrd %d\n", sizeof(a)); return 0; } kyuval@BARTON tmp $ gcc -ansi -pedantic -W -Wall b.c kyuval@BARTON tmp $ ./a.out Hello Wolrd 3 לא הבנתי.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.