Συναρτήσεις διαχείρισης αλφαριθμητικών Όνομα βιβλιοθήκης: string.h Ενδεικτικές συναρτήσεις: char *strcpy(char *s1, char *s2): Αντιγράφει την ακολουθία χαρακτήρων s2 στον πίνακα s1. Επιστρέφεται η τιμή του s1 char *strncpy(char *s1, char *s2,size_tn): Αντιγράφει n χαρακτήρες από την ακολουθία χαρακτήρων s2 στον πίνακα s1. Επιστρέφεται η τιμή του s1 char *strcat(char *s1, char *s2): προσαρτά την ακολουθία s2 στον πίνακα s1. Επιστρέφεται η τιμή του s1 char *strncat(char *s1, char *s2,size_tn): προσαρτά n χαρακτήρες από την ακολουθία s2 στον πίνακα s1. Επιστρέφεται η τιμή του s1 int strcmp(char *s1, char *s2): Συγκρίνει την ακολουθία χαρακτήρων s1 με την ακολουθία s2. Επιστρέφει 0 όταν s1=s2, >0 όταν s1>s2, <0 όταν s1<s2
Παράδειγμα /* strcpy example */ #include <stdio.h> #include <string.h> int main () char str1[]="sample string"; char str2[40]; char str3[40]; strcpy(str2,str1); strcpy(str3,"copy successful"); printf("str1: %s\nstr2: %s\nstr3:%s\n",str1,str2,str3); return 0; Έξοδος προγράμματος: str1: Sample string str2: Sample string str3: copy successful
Μαθηματικές Συναρτήσεις Όνομα βιβλιοθήκης: math.h Ενδεικτικές Συναρτήσεις: double pow( double base, int exponent): επιστρέφει την base εις την exponent. double sqrt( double x ): Επιστέφει την τετραγωνική ρίζα του x. double log10 ( double x ): Επιστέφει τον λογάριθμο του x με βάση το 10. double cos( double x ): Επιστέφει το ημίτονο μιας γωνίας x radians. double cos( double x ): Επιστέφει το συνημίτονο μιας γωνίας x radians.
Παράδειγμα /* sqrt example */ #include <stdio.h> #include <math.h> int main () double param, result; param= 1024.0; result = sqrt(param); printf("sqrt(%lf) = %lf\n", param, result ); return 0; Έξοδος προγράμματος: sqrt(1024.000000) = 32.000000
Συναρτήσεις Ταξινόμησης/Χειρισμού Χαρακτήρων Όνομα Βιβλιοθήκης: ctype.h Οι χαρακτήρες συχνά υπόκεινται σε χειρισμούς ως ακέραιοι, επειδή ένας χαρακτήρας στη C είναι ένας ακέραιος ενός byte. Ενδεικτικές Συναρτήσεις: int isdigit(int c): Επιστρέφει τιμή 1 (true)αν ο c είναι ψηφίο, 0 (false) διαφορετικά. int isalpha(int c): Επιστρέφει τιμή 1 (true)αν ο c είναι γράμμα, 0 (false) διαφορετικά int isalnum(int c): Επιστρέφει τιμή 1 (true)αν ο c είναι γράμμα ή ψηφίο, 0 (false) διαφορετικά
Παράδειγμα /* isalpha example */ #include <stdio.h> #include <ctype.h> int main () int i=0; char str[]="c++"; while (str[i]!= \0 ) if (isalpha(str[i])==1) else i++; return 0; printf("character %c is alphabetic\n",str[i]); printf("character %c is not alphabetic\n",str[i]); Έξοδος προγράμματος: character C is alphabetic character + is not alphabetic character + is not alphabetic
Συναρτήσεις εισόδου -εξόδου Όνομα βιβλιοθήκης: stdio.h Ενδεικτικές Συναρτήσεις: int getchar():εισάγει τον επόμενο χαρακτήρα από την τυπική έξοδο και τον επιστρέφει ως ακέραιο char *gets( char *s):εισάγει τους χαρακτήρες από την τυπική είσοδο στον πίνακα s μέχρι να βρεθεί ένας χαρακτήρας νέας γραμμής ή τέλους αρχείου int putchar(intc): εμφανίζει στην τυπική έξοδο τον χαρακτήρα που αποθηκεύσαμε στον c. int puts(char *s):εμφανίζει στην τυπική έξοδο την ακολουθία χαρακτήρων του s, ακολουθούμενη από έναν χαρακτήρα νέας γραμμής int sprintf(char *s, char *format, ):ισοδύναμη με την printfμε την διαφορά ότι η έξοδος αποθηκεύεται στον πίνακα s. int sscanf(char *s, char *format, ):ισοδύναμη με την scanfμε την διαφορά ότι θ είσοδος διαβάζεται από τον πίνακα s.
Παράδειγμα /* sprintf example */ #include <stdio.h> Int main () char buffer [50]; Int n, a=5, b=3; n=sprintf(buffer, "%d plus %d is %d", a, b, a+b); printf("[%s] is a %d char long string\n",buffer,n); return 0; Έξοδος προγράμματος: [5 plus 3 is 8] is a 13 char long string
Συναρτήσεις μετατροπής χαρακτήρων Όνομα Βιβλιοθήκης: stdlib.h Ενδεικτικές Συναρτήσεις: double atof(char *nptr): μετατρέπει την ακολουθία χαρακτήρων nptr σε double. double atoi(char *nptr): μετατρέπει την ακολουθία χαρακτήρων nptr σε int.
Παράδειγμα /* atof example: sine calculator */ #include <stdio.h> #include <stdlib.h> #include <math.h> Int main () double n,m; double pi=3.1415926535; char szinput[256]; printf( "Enter degrees: " ); gets ( szinput); n = atof( szinput); m = sin (n*pi/180); printf( "The sine of %f degrees is %f\n", n, m ); return 0; Έξοδος προγράμματος: Enter degrees: 45 The sine of 45.000000 degrees is 0.707101
Μεταβίβαση Παραμέτρων παράδειγμα swap Πολλές φορές θέλουμε να ανταλλάξουμε μεταξύ τους τις τιμές δύο μεταβλητών. Πρόκειται για μια απλή διεργασία η οποία θα μπορούσε να αναπαρασταθεί από μία συνάρτηση με το παρακάτω πρωτότυπο/δήλωση: void swap(int a, int b); Ορισμός συνάρτησης: void swap(int a, int b) Int temp; temp = a; a = b; b = temp;
Αναδρομή int sum(int n) if (n =< 1) return n; else return (sum(n 1) + n);