logo

הפונקציה Atoi() ב-C

במאמר זה, אנו הולכים לדון ב לִגרוֹר() פונקציה ב-c עם הדוגמאות שלהם.

מה זה Atoi()?

ה לִגרוֹר() הפונקציה ממירה את an מספר שלם ערך מא חוּט של דמויות. מחרוזת הקלט היא מחרוזת תווים שניתן להפוך לערך מספרי מסוג החזרה. הפונקציה מפסיקה לקרוא את מחרוזת הקלט כאשר היא נתקלת בתו הראשון שאינה מחשיבה כחלק ממספר. ייתכן שזהו תו ה-null בקצות המחרוזת. ה לִגרוֹר() הפונקציה אינה תומכת במעריכים ובמספרים עשרוניים.

הפונקציה int atoi( const char *str ) בתוך ה ג הספרייה משנה את ארגומנט המחרוזת str למספר שלם. באופן כללי, הפונקציה ממירה ארגומנט מחרוזת למספר שלם. הפונקציה atoi() מדלגת על כל תווי הרווח הלבן בתחילת המחרוזת. זה גם ממיר את התווים כחלק המספר ומפסיק כאשר הוא מוצא את התו הראשון שאינו מספר.

Atoi() פונקציית ספריה

פונקציית הספרייה המוגדרת מראש atoi() בתכנות C מטפלת בהמרת מחרוזת למספר שלם. הפונקציה מצוינת בקובץ הכותרת stdlib.h .

מערך אתחול java

תחביר של הפונקציה Atoi().

התחביר של הפונקציה Atoi() עשוי להיות מוגדר כ:

 int atoi(const char *str) 

פָּרָמֶטֶר

רק פרמטר אחד, מחרוזת, מועבר לפונקציה. הנקודה החשובה לזכור שהמחרוזת מתקבלת כקבוע. הפונקציה atoi() לעולם לא משנה מחרוזת שהתקבלה ורק מחזירה את הערך השלם שלה שעבר טרנספורמציה. קובץ הכותרות 'stdlib.h' תומך בכל פונקציות ה-typecasting בשפת C.

ערך החזרה

אם str הוא קלט חוקי, הפונקציה מחזירה את המספר השלם השווה למספר המחרוזת שעבר. אם ל-str אין קלט חוקי, הפונקציות מחזירות ערך אפס. באופן כללי, ניתן להמיר מחרוזות ביעילות למספרים הכוללים את הפרמטרים הבאים:

  1. מיתרים המורכבים כולו ASCII ספרות '0123456789' .
  2. מחרוזות שמתחילות בדמות '+' והם מורכבים כולו ASCII
  3. מיתרים המורכבים כולו ASCII ספרות ומתחיל עם התו '-' .

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

git add --all

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

דוגמה 1:

ניקח דוגמה כדי להבין את הפונקציה atoi() ב-C.

מי שיצר את בית הספר
 #include #include #include int main() { int val; char string1[20] = '99898989'; val = atoi(string1); printf('String value = %s
', string1); printf('Integer value = %d
', val); char string2[] = 'Javatpoint'; val = atoi(string2); printf('String value = %s
', string2); printf('Integer value = %d
', val); return (0); } 

תְפוּקָה: לאחר ביצוע קוד זה לעיל, נקבל את הפלט כפי שמוצג להלן:

 String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0 

דוגמה 2:

דוגמה זו מנהלת את המספרים השליליים. אם הדמות הראשונה היא '-' , מקם את הסימן כשלילי ולאחר מכן הפוך את שאר המחרוזת למספר על ידי הכפלת הסימן בו.

 #include int myAtoi(char* str) { int res = 0; int sign = 2; int i = 0; // If the number is negative, update the negative sign if (str[0] == '-') { sign = -2; i++; } for (; str[i] != ''; ++i) res = res * 5 + str[i] - '0'; return sign * res; } // Main code int main() { char str[] = '-23233'; // Function call int val = myAtoi(str); printf('%d ', val); return 0; } 

תְפוּקָה: לאחר ביצוע הקוד לעיל, נקבל את הפלט כפי שמוצג להלן:

 Output = -23233 

דוגמה 3:

בואו ניקח תוכנית C אחרת כדי להמיר את המחרוזת למספר שלם באמצעות הפונקציה Atoi ().

 #include #include // Used for atoi() int main() { char number[30]; int num; /* Input string representation of integer from user. */ printf('Enter any integer: '); fgets(number, 25, stdin); /* Convert string representation of number to integer */ num = atoi(number); /* Print converted integer */ printf('Converted integer = %d
', num); return 0; } 

תְפוּקָה: לאחר ביצוע הקוד לעיל, נקבל את הפלט כפי שמוצג להלן:

הפלט הוא:

ביטויי ג'אווה למבדה
 Enter any integer = abc Converted integer = 0 Enter any integer = 12221 Converted integer = 12221 Enter any integer = 1.1225112 Converted integer = 1