Studijní materiály
EXTRA Kontakt

Práce s řetězci (funkce z knihovny string.h) v jazyce C

V jazyce C jsou řetězce reprezentovány jako pole znaků ukončené nulou ('\0'). Pro práci s řetězci existuje řada funkcí v knihovně string.h, které umožňují manipulaci s řetězci, jako je kopírování, porovnávání, spojování a další operace. V tomto výkladu se podrobně podíváme na některé z nejdůležitějších funkcí pro práci s řetězci a poskytneme konkrétní příklady jejich použití.

Funkce pro manipulaci s řetězci

strlen() - délka řetězce

Funkce strlen() slouží k určení délky řetězce. Vrací počet znaků v řetězci bez nuly na konci.

Příklad použití strlen():

#include <stdio.h>
      #include <string.h>
      
      int main() {
          char str[] = "Hello";
          int length = strlen(str);
          printf("Delka retezce: %d\n", length);
          return 0;
      }
      

Výstupem tohoto kódu je:

Delka retezce: 5
      

strcpy() - kopírování řetězce

Funkce strcpy() kopíruje obsah jednoho řetězce do druhého.

Příklad použití strcpy():

#include <stdio.h>
      #include <string.h>
      
      int main() {
          char src[] = "Hello";
          char dest[20];
          strcpy(dest, src);
          printf("Kopirovany retezec: %s\n", dest);
          return 0;
      }
      

Výstupem tohoto kódu je:

Kopirovany retezec: Hello
      

strcat() - spojení řetězců

Funkce strcat() slouží k spojení dvou řetězců. Obsah druhého řetězce je připojen na konec prvního.

Příklad použití strcat():

#include <stdio.h>
      #include <string.h>
      
      int main() {
          char str1[20] = "Hello";
          char str2[] = " world!";
          strcat(str1, str2);
          printf("Spojeny retezec: %s\n", str1);
          return 0;
      }
      

Výstupem tohoto kódu je:

Spojeny retezec: Hello world!
      

strcmp() - porovnání řetězců

Funkce strcmp() porovnává dva řetězce a vrací jejich lexicografické porovnání.

Příklad použití strcmp():

#include <stdio.h>
      #include <string.h>
      
      int main() {
          char str1[] = "apple";
          char str2[] = "banana";
          int result = strcmp(str1, str2);
          if (result == 0) {
              printf("Retezce jsou stejne.\n");
          } else if (result < 0) {
              printf("Retezec \"%s\" je pred \"%s\".\n", str1, str2);
          } else {
              printf("Retezec \"%s\" je za \"%s\".\n", str1, str2);
          }
          return 0;
      }
      

Výstupem tohoto kódu je:

Retezec "apple" je pred "banana".
      

Toto jsou pouze některé z funkcí pro manipulaci s řetězci z knihovny string.h. Existuje mnoho dalších funkcí, které umožňují provádět různé operace s řetězci, jako je vyhledávání podřetězců, nahrazování znaků a další.