ΠΕΡΙΕΧΟΜΕΝΑ

 

1.  abs( )

2.  atof( )

3.  atoi( )

4.  atol( )

5.  itoa( )

6.  labs( )

7.  ltoa( )

8.  rand( )

9.  random( ) / randomize( )

10.  srand( )

11.  swab( )

12.  system( )

 

 

 

 

Θ. MISCELLANEUS  FUNCTIONS

 

 

 

1.  abs( ) 

 

            Το πρωτότυπό της βρίσκεται στο <stdlib.h>:

 

int abs( int num )

 

            Επιστρέφει την απόλυτη τιμή του ακεραίου num.

 

Π.χ.:         #include <stdlib.h>

                 get_abs( )

                 {

                   char num[80];

                   gets(num);

                   return abs (atoi (num) );

                 }

 

 

 

2.  atof( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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));

                 }

 

 

 

 

3.  atoi( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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));

                 }

 

 

 

 

4.  atol( ) 

 

            Το πρωτότυπό της βρίσκεται στο <stdlib.h>:

 

int atol( char *str )

 

            Μετατρέπει ένα string σε long integer. Το string πρέπει να περιλαμβάνει μία αποδεκτή long int τιμή, αλλιώς η συνάρτηση επιστρέφει 0. Ο αριθμός μπορεί να τερματίζεται από κάθε χαρακτήρα (κενό, σημείο στίξης ή ASCII) εκτός E ή e. Έτσι, αν δώσουμε 123.23 θα πάρουμε 123 και το 0.23 θα αγνοηθεί.

 

 

 

5.  itoa( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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);

                     }

 

 

6.  labs( ) 

 

            Το πρωτότυπό της βρίσκεται στο <stdlib.h>:

 

long labs( long num)

 

            Επιστρέφει την απόλυτη τιμή ενός long int αριθμού.

 

Π.χ.:              #include <stdlib.h>

                     long int get_labs( )

                     {

                         char num [80];

                         gets(num);

                         return labs(atol(num));

                     }

 

 

7.  ltoa( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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);

                     }

 

 

8.  rand( ) 

 

            Το πρωτότυπό της βρίσκεται στο <stdlib.h>:

 

int rand (void)

 

            Δημιουργεί μία σειρά ψευδοτυχαίων αριθμών. Κάθε φορά που καλείται επιστρέφει έναν αριθμό μεταξύ 0 και RAND_MAX.

 

Π.χ.:              #include <stdlib.h>

                     main( )

                     {

                         int i;

                         for(i=0; i<10; i++)

                         printf (“%d”, rand( ) );

                     }

 

 

 

9.  random( ) / randomize( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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.

 

 

 

10.  srand( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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.

 

 

 

11.  swab( ) 

 

            Το πρωτότυπό της βρίσκεται στο <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”.

 

 

12.  system( ) 

 

            Το πρωτότυπό της βρίσκεται στο <stdlib.h>:

 

int system( char *str)

 

            Μεταβιβάζει στο DOS σαν εντολή το string, που δείχνεται από τον pointer str και επιστρέφει το exitstatus της εντολής.

 

Π.χ.:              #include <stdlib.h>

                     main( )

                     {

                         system ( “dir”);

                     }

 

            Θα εκτελέσει dir στο σύστημα και θα επιστρέψει τη ροή στο πρόγραμμα.

 

            Αν δε δοθεί string, ο έλεγχος περνά στο OS-SHELL και επανέρχεται με τη χρήση της exit.