4.5 מספרים הרצאה
הפונקציה atoi ממירה מחרוזת שמכילה מספר שלם לטיפוס int. היא מקבלת מחרוזת (char*) ומחזירה את הערך המספרי שמוצג בה.
אם המחרוזת אינה מייצגת מספר תקין – התוצאה תהיה 0, אך אין דרך לדעת אם זו הייתה באמת המרה של "0" או שגיאה. לכן, atoi נחשבת מסוכנת, ועדיף להשתמש ב־strtol במקרים מתקדמים יותר.
הפונקציה atof ממירה מחרוזת שמייצגת מספר ממשי (float/double) למספר מסוג double.
גם כאן, אין טיפול בשגיאות – אם המחרוזת אינה חוקית, יוחזר 0.0.
הפונקציה sprintf כותבת נתונים לתוך מחרוזת במקום להדפיס למסך. זה כמו printf, אבל במקום פלט – המחרוזת מתמלאת.
char buffer[100];
int age = 30;
sprintf(buffer, "הגיל הוא %d", age);
// buffer יכיל את המחרוזת "הגיל הוא 30"
זוהי דרך לבנות מחרוזות דינמיות, שאפשר להשתמש בהן אחר כך או לשמור בקובץ. שים לב – אם המחרוזת לא מספיק גדולה, עלול להתרחש overflow. בגירסאות מודרניות עדיף להשתמש ב־snprintf (שמגביל את האורך).
הפונקציה abs מחזירה את הערך המוחלט של מספר שלם מסוג int. אם המספר חיובי, הוא נשאר כפי שהוא; אם שלילי – מחזיר את ההופכי החיובי שלו.
משמשת למשל כשבודקים מרחק בין שני מספרים בלי תלות בכיוון.
הפונקציה fabs עושה אותו דבר, אך למספרים ממשיים (double). היא מוגדרת בקובץ הכותרת math.h.
כמו abs, רק לשבר עשרוני.
הפונקציה pow מחשבת חזקה. היא מקבלת שני ערכים מסוג double: בסיס ומעריך, ומחזירה את התוצאה כ־double.
משמשת למציאת חזקה רגילה, שורש (למשל pow(x, 0.5)), או חזקות שליליות. חשוב לזכור שהפעולה איטית יחסית ולכן יש להשתמש בה רק כשבאמת צריך.
הפונקציה sqrt מחזירה את השורש הריבועי של מספר מסוג double. אם מעבירים לה מספר שלילי – התוצאה לא מוגדרת (בהרצה רגילה תקבל NaN או שגיאה).
בדרך כלל משמשת בחישובים גיאומטריים, מרחקים, סטיית תקן ועוד.
לפני השימוש בפונקציות pow, sqrt, fabs וכדומה – יש להוסיף את הקובץ:
ולקמפל עם -lm אם אתה משתמש ב־gcc:
כדי להוסיף את ספריית המתמטיקה של libc לקימפול