Commit 29545949 authored by Sebastien FAUCOU's avatar Sebastien FAUCOU
Browse files

semaine 1 : ajout fichier source

parent d17af657
#include <assert.h>
#include <stdlib.h>
/*
* Retourne la plus petite valeur entre :
* - Le nombre d'octet entre le début de la chaîne pointée par str et le premier marqueur de fin de chaîne.
* - maxlen
*
* L'implémentation garantie qu'aucun octet au-delà de s+maxlen n'est accédé.
*/
size_t iutna_strnlen(const char* str, size_t maxlen)
{
return 42;
}
/*
* Compare les len premiers octets des chaînes s1 et s2 selon l'ordre établit
* par la relation < sur les caractères. * La comparaison s'arrête dès qu'un
* caractère est différent, que len caractères ont été comparés, ou que les deux
* chaînes ont été parcourues jusqu'à un marqueur de fin de chaîne.
*
* Le résultat est :
* - strictement négatif si les k premiers caractères de s1 et s2 sont identiques et le k+1ème caractère de s1 est plus petit que celui de s2, pour k <= len-1.
* - nul si les chaînes s1 et s2 sont identiques ou si leurs len premiers caractères sont identifiques.
* - strictement positif si les k premiers caractères de s1 et s2 sont identiques et le k+1ème caractère de s1 est plus grand que celui de s2 , pour k <= len-1.
*/
int iutna_strncmp(const char* s1, const char* s2, size_t len)
{
return 42;
}
/*
* Copie les min(k,n) octets à l'adresse src vers l'adresse dst, où k est la
* longueur de la chaîne commençant à l'adresse src, en comptant le marqueur de
* fin de chaîne.
*
* Attention, si n < k, la chaîne à l'adresse dst ne comporte pas de marqueur de fin de chaîne.
* En revanche, si k < n, n-k octets nuls sont ajoutés à la destination.
*
* La valeur retournée est un pointeur vers le début de la chaîne destination.
*/
char* iutna_strncpy(char* dest, const char* src, size_t n)
{
return NULL;
}
int main(void)
{
// test cases for iutna_strnlen
assert(iutna_strnlen("", 0) == 0);
assert(iutna_strnlen("", 1) == 0);
assert(iutna_strnlen("", 3) == 0);
assert(iutna_strnlen("a", 0) == 0);
assert(iutna_strnlen("a", 1) == 1);
assert(iutna_strnlen("a", 3) == 1);
assert(iutna_strnlen("0123456789", 0) == 0);
assert(iutna_strnlen("0123456789", 1) == 1);
assert(iutna_strnlen("0123456789", 3) == 3);
assert(iutna_strnlen("0123456789", 10) == 10);
assert(iutna_strnlen("0123456789", 11) == 10);
assert(iutna_strnlen("0123456789", 20) == 10);
// test cases for iutna_strncmp
assert(iutna_strncmp("", "abc", 3) < 0);
assert(iutna_strncmp("abc", "", 3) > 0);
assert(iutna_strncmp("abc", "", 0) == 0);
assert(iutna_strncmp("abc","abd", 4) < 0);
assert(iutna_strncmp("abc","abd", 3) < 0);
assert(iutna_strncmp("abc","abd", 2) == 0);
assert(iutna_strncmp("abc","abd", 0) == 0);
assert(iutna_strncmp("abd","abc", 4) > 0);
assert(iutna_strncmp("abd","abc", 3) > 0);
assert(iutna_strncmp("abd","abc", 2) == 0);
assert(iutna_strncmp("abd","abc", 0) == 0);
assert(iutna_strncmp("cba","dba", 4) < 0);
assert(iutna_strncmp("cba","dba", 3) < 0);
assert(iutna_strncmp("cba","dba", 2) < 0);
assert(iutna_strncmp("cba","dba", 0) == 0);
assert(iutna_strncmp("dba","cba", 4) > 0);
assert(iutna_strncmp("dba","cba", 3) > 0);
assert(iutna_strncmp("dba","cba", 2) > 0);
assert(iutna_strncmp("dba","cba", 0) == 0);
assert(iutna_strncmp("dba\0abc", "dba\0dba", 6) == 0);
char buffer[20];
assert(iutna_strncmp("abc", iutna_strncpy(buffer, "abc", 4), 20) == 0);
assert(iutna_strncmp("abc", iutna_strncpy(buffer, "abc", 2), 20) == 0);
assert(iutna_strncmp("", iutna_strncpy(buffer, "", 20), 20) == 0);
assert(iutna_strncmp("abc", iutna_strncpy(buffer, "abcdefghi", 3), 20) == 0);
assert(iutna_strncmp("abc", iutna_strncpy(buffer, "abcdefghi", 4), 20) != 0);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment