עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

++c, הפיכת מערך מסוג char למספר int

Featured Replies

פורסם

היי !

יש לי מערך מסוג char, למשל: {'1', '2'} ואני רוצה להפכו למספר (21) באופן בהבא:


//temp1.cpp



int main()
{
   char myInts[3] = {'0','2','\0'};
  int myChars = myInts;
   return 0;
}

כמובן ש

int myChars = myInts;

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

תודה !

פורסם

תוריד מהערך של הchar ,

48 ואז תקבל את הערך בint

פורסם

יותר נכון יהיה להוריד '0' ולא את המספר המפורש.

מעבר לזה, אם מדובר במחרוזת (כלומר מערך chars שמסתיים ב-0) אז יש כבר פונ' מוכנה. לא זוכר את שמה אבל אם תרצה אני אנסה לבדוק.

עריכה:

בקריאה שניה אני מבין מהדוגמא שלך שמדובר באמת במחרוזת ולא "סתם" מערך CHARS.

חוצמזה מצאתי את הפונ' - היא נקראת atoi.

פורסם

אוף אכזבו אותי...

(ובאמת עדיף להוריד '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;

פורסם

אני אוהב לכתוב דברים מ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;
}

פורסם

#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;

}

פורסם

#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 ;)

פורסם

יש לך טעות קטנה(וחלקית)....בהסברים.



//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

לא הבנתי.

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.