Fonctions du module String (C)

#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];
}