Loading lang_c_ex_0503...
<string.h>pour :
<string.h>propose des fonctionnalités autour des chaînes de caractères (déterminer la longueur, comparer totalement ou partiellement...).
void test_isConcat(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; // ... }
<string.h>propose des fonctionnalités autour des chaînes de caractères (recopier, concaténer...).
<string.h>propose des fonctionnalités autour des chaînes de caractères (déterminer la longueur, comparer totalement ou partiellement...).
void test_isTwice(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; // ... }
<string.h>propose des fonctionnalités autour des chaînes de caractères (recopier, concaténer...).
<string.h>propose des fonctionnalités autour des chaînes de caractères (déterminer la longueur, comparer totalement ou partiellement...).
void test_isRepetition(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; // ... }
<string.h>propose des fonctionnalités autour des chaînes de caractères (recopier, concaténer...).
//----------------------------------------------------------------------------
#ifndef TEXTCOMPARE_H #define TEXTCOMPARE_H
#include <stdbool.h>
bool isConcat(const char *tested, const char *head, const char *tail);
bool isTwice(const char *tested, const char *pattern);
bool isRepetition(const char *str);
#endif // TEXTCOMPARE_H
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
#include "textCompare.h"
#include <string.h>
bool isConcat(const char *tested, const char *head, const char *tail) { const size_t headLen=strlen(head); return (strncmp(head, tested, headLen)==0) && (strcmp(tail, tested+headLen)==0); }
bool isTwice(const char *tested, const char *pattern) { const size_t patternLen=strlen(pattern); return (strncmp(pattern, tested, patternLen)==0) && (strcmp(pattern, tested+patternLen)==0); }
bool isRepetition(const char *str) { const size_t len=strlen(str); return (len%2==0) && (strncmp(str, str+len/2, len/2)==0); }
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
#include "textCompare.h"
#include <stdio.h> #include <string.h>
void test_isConcat(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; strcpy(s, a); strcat(s, b); printf("does <%s> + <%s> make <%s>? %d\n", a, b, s, isConcat(s, a, b)); strcpy(s, a); strcat(s, a); printf("does <%s> + <%s> make <%s>? %d\n", a, b, s, isConcat(s, a, b)); strcpy(s, b); strcat(s, a); printf("does <%s> + <%s> make <%s>? %d\n", a, b, s, isConcat(s, a, b)); strcpy(s, b); strcat(s, b); printf("does <%s> + <%s> make <%s>? %d\n", a, b, s, isConcat(s, a, b)); }
void test_isTwice(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; strcpy(s, a); strcat(s, b); printf("does twice <%s> make <%s>? %d\n", b, s, isTwice(s, b)); strcpy(s, a); strcat(s, a); printf("does twice <%s> make <%s>? %d\n", b, s, isTwice(s, b)); strcpy(s, b); strcat(s, a); printf("does twice <%s> make <%s>? %d\n", b, s, isTwice(s, b)); strcpy(s, b); strcat(s, b); printf("does twice <%s> make <%s>? %d\n", b, s, isTwice(s, b)); }
void test_isRepetition(void) { printf("\n~~~~ %s() ~~~~\n", __func__); const char *a="good"; const char *b="bye"; char s[100]; strcpy(s, a); strcat(s, b); printf("is <%s> a repetition? %d\n", s, isRepetition(s)); strcpy(s, a); strcat(s, a); printf("is <%s> a repetition? %d\n", s, isRepetition(s)); strcpy(s, b); strcat(s, a); printf("is <%s> a repetition? %d\n", s, isRepetition(s)); strcpy(s, b); strcat(s, b); printf("is <%s> a repetition? %d\n", s, isRepetition(s)); }
int main(void) { test_isConcat(); test_isTwice(); test_isRepetition(); return 0; }
//----------------------------------------------------------------------------