II. Prérequis▲
Quelques prérequis sont indispensables pour les chapitres à suivre. Des fonctions que tout le monde devrait avoir constamment sous le coude, voici celles indispensables pour ce tutoriel et qui traitent des chaînes de caractères :
static
char
*
str_dup (
const
char
*
str)
{
char
*
dup =
NULL
;
if
(
str !=
NULL
)
{
size_t size =
strlen (
str) +
1
;
dup =
malloc (
size);
if
(
dup !=
NULL
)
{
memcpy (
dup, str, size);
}
}
return
dup;
}
Cette fonction permet de copier simplement une chaîne de caractères. Le nouveau pointeur retourné par la fonction doit explicitement être libéré avec la fonction standard free.
La seconde fonction indispensable dans ce tutoriel permet de terminer une chaîne de caractères avec un zéro de fin de chaîne, ce qui n'est pas toujours le cas surtout dans des chaînes extraites d'un fichier :
static
void
str_finalize (
char
*
str)
{
char
*
p =
strchr (
str, '
\n
'
);
if
(
p !=
NULL
)
{
*
p =
0
;
}
}
Cette fonction recherche un éventuel saut de ligne et le remplace par un zéro terminal. Les sauts de ligne sont surtout présents lorsqu'on récupère des lignes de texte à partir d'un fichier, mais les fonctions standards attendent un zéro de fin de chaîne.