#include int calculerLongueur(char* src) { int cpt = 0; char* s = src; while (*s != 0x00) { cpt++; s++; } return cpt; } void copier(char* src, char* dst) { char* dt = dst; char* s = src; while (*s != 0x00) { *dt = *s; s++; dt++; } *dt = 0x00; } void concatener(char* src1, char* src2, char* dst) { char* dt = dst; char* s = src1; while (*s != 0x00) { *dt = *s; s++; dt++; } s = src2; while (*s != 0x00) { *dt = *s; s++; dt++; } *dt = 0x00; } void inserer(char* src, int p, char* dst) { int ldst = calculerLongueur(dst); if ((p < 0) || (p > ldst)) { return; } int lsrc = calculerLongueur(src); char* d1 = &dst[ldst + lsrc]; char* d2 = &dst[ldst]; printf("%d %d %d\n", ldst, lsrc, ldst - p + 1); for (int i = 0; i < ldst - p + 1; i++) { *d1 = *d2; d1--; d2--; } d2 = &src[lsrc - 1]; for (int i = 0; i < lsrc; i++) { *d1 = *d2; d1--; d2--; } } void supprimer(char c, char* src) { char* d = src; char* s = src; while (*s != 0x00) { if (*s != c) { *d = *s; d++; } s++; } *d = 0x00; } void tester1(void) { char str[50]; char* s1 = "abcdef"; char* s2 = "xyz"; concatener(s1, s2, str); printf("\"%s\" + \"%s\" : \"%s\"\n", s1, s2, str); printf("\n"); } void tester2(void) { char str[50]; char* s1 = "0123456789"; char* s2 = "xyz"; int pos = 5; copier(s1, str); inserer(s2, pos, str); printf("\"%s\", %d, \"%s\" : \"%s\"\n", s1, pos, s2, str); printf("\n"); } void tester3(void) { char str[50]; char* s = "xyxzxxxyyyzxxzzzyxzyxzyxxx"; char car = 'x'; copier(s, str); printf("\"%s\", ", str); supprimer(car, str); printf(" %c : \"%s\"\n", car, str); car = 'y'; printf("\"%s\", ", str); supprimer(car, str); printf(" %c : \"%s\"\n", car, str); car = 'z'; printf("\"%s\", ", str); supprimer(car, str); printf(" %c : \"%s\"\n", car, str); printf("\n"); } int main(void) { tester1(); tester2(); tester3(); return 0; }