1. Početna
  2. Tehnologija & Gadgeti
  3. Što su stringovi u C programiranju?

Što su stringovi u C programiranju?

U programskom jeziku C, stringovi su nizovi znakova koji se koriste za pohranu i manipulaciju tekstualnih podataka. Unutar C programiranja, stringovi nisu izvorni tip podataka, već se implementiraju kao nizovi znakova koji završavaju sa znakom null (”). Ova karakteristika je ključna za razumijevanje kako se stringovi koriste i upravljaju u C-u.

Stringovi se mogu definirati na nekoliko načina. Najčešće se koriste nizovi znakova, a evo kako se to može učiniti:

char str[] = "Hello, World!";

U ovom primjeru, niz znakova ‘str’ sadrži tekst ‘Hello, World!’ i završava s null znakom. Prilikom manipulacije stringovima, važno je imati na umu da C ne pruža automatsku zaštitu od preljeva memorije, stoga programer mora biti oprezan pri radu s ovim nizovima.

Jedna od najčešćih operacija koju programeri izvode sa stringovima je njihovo povezivanje. U C-u, za povezivanje stringova koristi se funkcija ‘strcat’, koja se nalazi u biblioteci ‘string.h’. Ova funkcija omogućava spajanje dva stringa, ali se mora paziti da odredišni niz ima dovoljno prostora za pohranu rezultata. Evo primjera kako se koristi:

#include 
#include 

int main() {
    char str1[20] = "Hello";
    char str2[] = " World!";
    strcat(str1, str2);
    printf("%sn", str1);
    return 0;
}

U ovom slučaju, rezultat će biti ‘Hello World!’. Zbog toga je potrebno unaprijed odrediti veličinu odredišnog niza kako bi se izbjeglo preljevanje.

Osim spajanja, često se koristi i funkcija ‘strcmp’ za usporedbu stringova. Ova funkcija vraća 0 ako su stringovi identični, negativnu vrijednost ako je prvi string manji, i pozitivnu vrijednost ako je prvi string veći. U nastavku je primjer usporedbe dva stringa:

#include 
#include 

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    int result = strcmp(str1, str2);
    if (result  0) {
        printf("%s je veći od %sn", str1, str2);
    } else {
        printf("%s je jednak %sn", str1, str2);
    }
    return 0;
}

Kada radite sa stringovima, također je važno znati kako ih pretraživati. Funkcija ‘strstr’ omogućava pretraživanje jednog stringa unutar drugog. Ako se podstring pronađe, funkcija će vratiti pokazivač na njegovo mjesto u originalnom stringu. Ako ne, vraća NULL. Primjer pretraživanja stringa može izgledati ovako:

#include 
#include 

int main() {
    char str[] = "Hello, World!";
    char *ptr = strstr(str, "World");
    if (ptr != NULL) {
        printf("Podstring pronađen: %sn", ptr);
    } else {
        printf("Podstring nije pronađen.n");
    }
    return 0;
}

Osim osnovnih funkcija, C također omogućava rad s dinamičkim stringovima korištenjem pokazivača i dinamičke alokacije memorije. Korištenjem funkcije ‘malloc’, programeri mogu alocirati memoriju za stringove tijekom izvođenja programa. To je posebno korisno kada se ne zna unaprijed koliko će prostora biti potrebno. Na primjer:

#include 
#include 

int main() {
    char *str = malloc(20 * sizeof(char));
    if (str != NULL) {
        strcpy(str, "Dinamicki string");
        printf("%sn", str);
        free(str);
    }
    return 0;
}

U ovom primjeru, alocirana je memorija za string od 20 znakova, a nakon korištenja, memorija se oslobađa pomoću funkcije ‘free’.

Kao što možemo vidjeti, rad sa stringovima u C programiranju može biti jednostavan, ali također nosi i određene rizike. Važno je pratiti veličine nizova, koristiti sigurnosne funkcije i pravilno upravljati memorijom kako bi se izbjegle greške i propusti. C programiranje pruža snažne alate za rad s tekstualnim podacima, a razumijevanje stringova je ključno za uspješno programiranje u ovom jeziku.

Was this article helpful?

Related Articles

Leave a Comment