Standardna knjižnjica C

Povratek na kazaloNazajNaprej

Funkcije z nizi

int strlen( s)  Vrne število znakov v nizu s (brez nultega znaka). 
char *strchr(s, c)  Vrne kazalec na prvi nastop znaka c v nizu s. (sicer vrne NULL) 
char *strrchr(s, c)  Vrne kazalec na zadnji nastop znaka c v nizu s. 
int strcpy (s2, s1)  Kopira niz s1 v niz s2. 
int strncpy(s2, s1, n)  Kopira niz s1 v niz s2, vendar največ  n znakov. 
char *strcmp (s2, s1)  Primerja niza in vrne: 
  • pozitivno vrednost če je s2>s1,
  • 0..če je s2=s1 
  • negativno vrednost sicer 
char *strncmp(s2, s1)  Podobno kot strcmp, vendar primerja največ n znakov 
char * strstr(s2, s1)  V nizu s2 išče podniz s1 in vrne kazalec nanj

Konverzija podatkov

Pri pregledu naslednjih funkcij za konverzijo podatkov imejmo definirano:
    #include < stdio.h >
    int base;
    char *s, *end;
int atoi (s)  Pretvorba števila v nizu s v format int. 
long atol (s)  Pretvorba števila v nizu s v format long int 
double atof (s)  Pretvorba števila v nizu s v format double 
double strtod (s,end)  Pretvorba števila v nizu s, pisanem v znanstveni notaciji. Funkcija nastavi kazalec end na znak, ki je zaključil pretvorbo 
long strtol (s, end, base) 
unsigned long strtoul (s, end, base) 
Konverzija niza s v long oziroma unsigned long. Pri tem je base uporabljena osnova (mora biti med 2 in 36). Vodeče ničle so ignorirane. 

Konverzija z uporabo polja

Splošna oblika:

    char  polje[80];
    . . . . . . .
    int sscanf(polje,format, &arg1, &arg2,..);
    int sprintf(polje, format, arg1, arg2,..);

Opomba:

sscanf vrne število uspešno prebranih elementov. sprintf vrne število uspešno zapisanih znakov.

Primer:

    #include < stdio.h >
    char bufer[100];
    float vrednost;

    main() {
        scanf("%s", bufer);  /* preberemo niz  */
        sscanf(bufer, "%f", &vrednost );  /* konverzija */
        printf("Vrednost je: %f \n", vrednost);

    }

Funkcije z znaki

So deklarirane v datoteki ctype.h. Zato imejmo:
    #include < ctype.h >
    int c;

Na voljo imamo naslednje funkcije:

int isalpha (c) 
int isupper (c) 
int islower(c) 
int isalnum (c) 
int isdigit (c) 
int isprint (c) 
int iscntrl (c) 
int ispunct (c) 
int isspace (c) 
int toupper (c) 
int tolower (c) 
int toascii (c)

Primer:

Konverzija črk niza v velike črke
    i = 0;
    while (s[i] != 0) {
        if ( isalpha( s[i] ))  s[i]= toupper(s[i++ ]);
    }
    /* ali pa z uporabo kazalca... */
    while (*s != 0) if ( isalpha(*s)) {
         *s = toupper(*s); s++;
    }

Matematične funkcije

So deklarirane v datoteki math.h. Zato imejmo:
    #include < math.h >

    double x, y , *pd ;
    long k;
    int *pi , i;

Na voljo imamo:

int abs (i) 
ilong labs ( k ) 
double fabs (x) 
double fmod (x, y)  Vrne ostanek deljenja x / y 
double modf (x, pd) 
double ldexp (x, i)  Vrne (x* (2 na i) ) 
double frexp (x, pi) 
double floor (x)  Vrne največji integer, ki se gre v x 
double ceil (x)  Vrne najmanjši integer,ki ni manjši od x 
double sqrt (x) 
double pow (x, y) 
double sin (x) 
double cos(x) 
double tan(x) 
double asin (x) 
double acos (x) 
double atan (x) 
double atan2 (x)  Vrne arctangens y/x. Uporabi predznaka argumentov za določitev kvadranta 
double exp (x) 
double log (x) 
double log10 (x)

Povratek na kazaloNazajNaprej