ΠΕΡΙΕΧΟΜΕΝΑ
Θ. MISCELLANEUS FUNCTIONS
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int abs( int
num )
Επιστρέφει
την απόλυτη τιμή του ακεραίου num.
Π.χ.: #include <stdlib.h>
get_abs(
)
{
char
num[80];
gets(num);
return
abs (atoi (num) );
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
double atof( char *str )
Μετατρέπει
ένα string σε μία double τιμή. Το string πρέπει να
περιλαμβάνει έναν αποδεκτό floating
point αριθμό. Αλλιώς η συνάρτηση
επιστρέφει 0. Το string πρέπει να
τελειώνει με έναν χαρακτήρα που δε μπορεί να είναι μέρος του αριθμού. Αυτό
περιλαμβάνει το space ή τα
σημεία στίξης (εκτός από την τελεία) και χαρακτήρες εκτός E ή e. Έτσι, αν
καλέσουμε 100.00 HELLO, θα
πάρουμε100.00.
Π.χ.: #include <stdlib.h>
main(
)
{
char num1[80], num2 [80];
printf( “ enter first:
“); gets(num1);
printf(“
enter second: “); gets (num2);
printf
(“ Sum is %f”, atof(num1) + atof(num2));
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int atoi( char *str )
Μετατρέπει
ένα string σε μία
ακέραια τιμή. Το string πρέπει να
περιλαμβάνει έναν αποδεκτό ακέραιο αριθμό, αλλιώς η συνάρτηση επιστρέφει 0.
Ο
αριθμός μπορεί να τερματίζεται από κάθε χαρακτήρα που δεν αποτελεί τμήμα του
αριθμού. Αυτός ο περιορισμός περιλαμβάνει τα κενά, τα σημεία στίξης και όλους
τους χαρακτήρες εκτός E ή e. Έτσι, αν καλέσουμε την atoi( ) με τιμή 123.23, η ακέραια τιμή που θα επιστραφεί θα
είναι 123 και το 0.23 θα αγνοηθεί.
Π.χ.: #include <stdlib.h>
main(
)
{
char
num1[80], num2 [80];
printf(
“ enter first: “); gets(num1);
printf(“
enter second: “); gets (num2);
printf
(“ Sum is %f”, atoi(num1) + atoi(num2));
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int atol( char *str )
Μετατρέπει ένα string σε long integer. Το string πρέπει να
περιλαμβάνει μία αποδεκτή long
int τιμή, αλλιώς η συνάρτηση
επιστρέφει 0. Ο αριθμός μπορεί να τερματίζεται από κάθε χαρακτήρα (κενό, σημείο
στίξης ή ASCII) εκτός E ή e. Έτσι, αν
δώσουμε 123.23 θα πάρουμε 123 και το 0.23 θα αγνοηθεί.
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
char *atoa( int num, char *str, int
radix)
Μετατρέπει
έναν ακέραιο σε string και
τοποθετεί το αποτέλεσμα στο str. Η βάση
του εξαγόμενου string
καθορίζεται από το radix, το οποίο
μπορεί να είναι από 2 ως 36.
Η
συνάρτηση επιστρέφει έναν pointer στο str. Γενικά, δεν υπάρχει τιμή που να επιστρέφεται σε
περίπτωση λάθους. Πάντως πρέπει να είμαστε σίγουροι ότι το μέγεθος του string αρκεί για να κρατήσει το αποτέλεσμα. Το μέγιστο
απαιτούμενο μέγεθος είναι 17 bytes.
Π.χ.: #include <stdlib.h>
main( )
{
char
p [17];
itoa
(1423, p, 16);
printf
(p);
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
long labs( long
num)
Επιστρέφει
την απόλυτη τιμή ενός long
int αριθμού.
Π.χ.: #include <stdlib.h>
long
int get_labs( )
{
char
num [80];
gets(num);
return labs(atol(num));
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
char *ltoa(long num, char *str, int radix)
Μετατρέπει
έναν long integer στο ισοδύναμο string και τοποθετεί το αποτέλεσμα στο string. Η βάση του εξαγόμενου string καθορίζεται από το radix με ακτίνα από 2 ως 36.
Η
συνάρτηση επιστρέφει έναν pointer στο string. Δεν υπάρχει τιμή που να επιστρέφεται σε περίπτωση
λάθους (error-return value). Πρέπει να είμαστε σίγουροι κατά την κλήση της ltoa( ), ότι το μέγεθος του string αρκεί για να χωρέσει τον αριθμό. Το μέγιστο απαιτούμενο
όριο είναι 33 bytes.
Π.χ.: #include <stdlib.h>
main( )
{
char p [33];
ltoa (1423, p, 16);
printf (p);
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int rand (void)
Δημιουργεί
μία σειρά ψευδοτυχαίων αριθμών. Κάθε φορά που καλείται επιστρέφει έναν αριθμό
μεταξύ 0 και RAND_MAX.
Π.χ.: #include <stdlib.h>
main(
)
{
int
i;
for(i=0;
i<10; i++)
printf
(“%d”, rand( ) );
}
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int random( int
num) / void randomize (void)
Η
random( ) επιστρέφει έναν τυχαίο
αριθμό από 0 ως num.
Σημειώνεται ότι η random( ) αλλά
και η randomize( )
αποτελούν macro και όχι
συναρτήσεις.
Η
randomize( )
αρχικοποιεί τη γεννήτρια ψευδοτυχαίων αριθμών σε μία ψευδοτυχαία τιμή.
Χρησιμοποιεί τη συνάρτηση time( ), έτσι
θα χρειαστεί να ενσωματώσουμε και το time.h σε ένα πρόγραμμα που χρησιμοποιεί τη randomize( ).
Π.χ.: #include <time.h>
#include
<stdlib.h>
main(
)
{
int
i;
randomize(
);
for(i=0;
i<10; i++)
printf (“%d”, random(25) );
}
Το
παραπάνω πρόγραμμα εμφανίζει 10 τυχαίους αριθμούς από 0 ως και 25.
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
void srand(unsigned
seed)
Χρησιμοποιείται
για να θέσει μία τιμή εκκίνησης για τη σειρά αριθμών που δημιουργεί η rand( ). Επιστρέφει πολλαπλές εκτελέσεις του προγράμματος
χρησιμοποιώντας διαφορετικές σειρές ψευδοτυχαίων αριθμών.
Π.χ.: #include <stdio.h>
#include
<stdlib.h>
#include
<time.h>
main(
)
{
int
i, stime;
long
ltime;
ltime
= time(NULL);
stime
= (unsigned int) ltime / 2;
srand(stime);
for(i=0;
i<10; i++)
printf (“%d”, random( ) );
}
Το
παραπάνω πρόγραμμα χρησιμοποιεί την ώρα του συστήματος για να αρχικοποιήσει τη
συνάρτηση rand( ) μέσω
της srand( ). Έπειτα, τυπώνει 10 ψευδοτυχαίους αριθμούς από
srand( ) ως RAND_MAX.
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
void swab( char *source, char *dest, int num)
Αντιγράφει num bytes από το string που
δείχνεται από τον pointer
source, στο dest μετατοπίζοντας τη θέση κάθε
μονού / ζυγού ζεύγους bytes καθώς
προχωράει.
Π.χ.: char
dest [3];
swab ( “Hi”, dest, 2);
printf(dest);
Θα
εμφανίσει “iH”.
Το
πρωτότυπό της βρίσκεται στο <stdlib.h>:
int system( char *str)
Μεταβιβάζει
στο DOS σαν εντολή το string, που δείχνεται από τον pointer str και
επιστρέφει το exit – status της εντολής.
Π.χ.: #include <stdlib.h>
main( )
{
system ( “dir”);
}
Θα
εκτελέσει dir στο
σύστημα και θα επιστρέψει τη ροή στο πρόγραμμα.
Αν
δε δοθεί string, ο
έλεγχος περνά στο OS-SHELL και επανέρχεται με τη χρήση της exit.