a) Utiliser les fonctions spéciales de <string>.
#include <stdio.h> #include <string.h> main() { /* Déclarations */ char CH1[100], CH2[100]; /* chaînes données */ char CH3[100]=""; /* chaîne résultat */ /* Saisie des données */ printf("Introduisez la première chaîne de caractères : "); gets(CH1); printf("Introduisez la deuxième chaîne de caractères : "); gets(CH2); /* Traitements */ strncpy(CH3, CH1, strlen(CH1)/2); strncat(CH3, CH2, strlen(CH2)/2); /* Affichage du résultat */ printf("Un demi \"%s\" plus un demi \"%s\" donne \"%s\"\n",CH1, CH2, CH3); return 0; }
b) Utiliser uniquement les fonctions gets et puts.
#include <stdio.h> main() { /* Déclarations */ char CH1[100], CH2[100]; /* chaînes données */ char CH3[100]=""; /* chaîne résultat */ int L1,L2; /* longueurs de CH1 et CH2 */ int I; /* indice courant dans CH1 et CH2 */ int J; /* indice courant dans CH3 */ /* Saisie des données */ puts("Introduisez la première chaîne de caractères : "); gets(CH1); puts("Introduisez la deuxième chaîne de caractères : "); gets(CH2); /* Détermination les longueurs de CH1 et CH2 */ for (L1=0; CH1[L1]; L1++) ; for (L2=0; CH2[L2]; L2++) ; /* Copier la première moitié de CH1 vers CH3 */ for (I=0 ; I<(L1/2) ; I++) CH3[I]=CH1[I]; /* Copier la première moitié de CH2 vers CH3 */ J=I; for (I=0 ; I<(L2/2) ; I++) { CH3[J]=CH2[I]; J++; } /* Terminer la chaîne CH3 */ CH3[J]=''; /* Affichage du résultat */ puts("Chaîne résultat : "); puts(CH3); return 0; }