1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #include <stdlib.h>
#include <string.h>
// chaine de caractere sur lesquelles on travaille => variable globale
int compression (char *sz1,char *sz2) // compresse une chaine de caractere
{
int i,j,n=0;j=0;
for (i=0;*sz1[i]!=0;i++)
n++;
for (i=0;i<n;i++)
if (*sz1[i]!=' ')
{
*sz2[j]=*sz1[i];
j++;
}
strcpy(*sz1,*sz2);
printf("apres compression : %s\n",*sz2);
return 0;
}
int inversion (char *sz1,char *sz2) // inverse les caractères d'une chaine : abc=>cba
{
char c;
int i,j,n;
n=0;
j=1;
for (i=0;*sz2[i]!=0;i++)
n++;
for(i=0;i<n/2;i++)
{
c=*sz2[i];
*sz2[i]=*sz2[n-j];
*sz2[n-j]=c;
j++;
}
printf("apres inversion : %s\n\n",*sz2);
return 0;
}
int test_palindrome (char *sz1,char *sz2)
{
return (strcmp(*sz1,*sz2));
}
int main(int argc, char *argv[])
{
char sz1[50], sz2[50];
fgets(sz1,sizeof(sz1),stdin);
compression(&sz1,&sz2);
inversion(&sz1,&sz2);
if (!(test_palindrome(&sz1,&sz2)))
puts("c'est un palindrome");
else puts("ce n'est pas un palindrome");
system("PAUSE");
return 0;
} |
Partager