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í.
strlen()
- délka řetězceFunkce strlen()
slouží k určení délky řetězce. Vrací počet znaků v řetězci bez nuly na konci.
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ězceFunkce strcpy()
kopíruje obsah jednoho řetězce do druhého.
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.
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í.
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ší.