#include <stdio.h>
/* Longueur d'une chaîne (comme strlen) */
int len(const char *s) {
int n = 0;
while (s[n] != '\0') {
n += 1;
}
return n;
}
/* Copie d'une chaîne (comme strcpy) */
char* cpy(char* dest, char* src) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i += 1;
}
dest[i] = '\0'; // Ajout de la sentinelle
return dest;
}
/* La copie créée est indépendante de l'original */
/* Concaténation de deux chaînes (comme strcat) */
char* cat(char* dest, char* src) {
int i = 0;
int j = 0;
while (dest[i] != '\0') {
i += 1;
}
while (src[j] != '\0') {
dest[i + j] = src[j];
j += 1;
}
dest[i + j] = '\0'; // Ajout de la sentinelle
return dest;
}
/* Comparaison lexicographique (comme strcmp) */
int cmp(const char* s1, char* s2) {
int i = 0;
while (s1[i] != '\0' && s2[i] != '\0') {
if (s1[i] != s2[i]) {
return (unsigned char)s1[i] - (unsigned char)s2[i];
}
i += 1;
}
return (unsigned char)s1[i] - (unsigned char)s2[i];
}