Advertisement
Mazamin

Palindro

Mar 13th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int duplicavettore(char *, char *, int);
  6. int palindro(char *);
  7. int checkcorr(char *, char *);
  8.  
  9. int main(int argc, char** argv){
  10.     char ARG1[32], ARG2[32], ARG3[32];
  11.     puts("Inserire tre stringhe");
  12.     scanf("%s%s%s", ARG1, ARG2, ARG3);
  13.     if((checkcorr(ARG1, ARG2)==1) && (palindro(ARG3)==0))
  14.         puts(ARG3);
  15.     else if(palindro(ARG3)==1)
  16.         puts("palindro");
  17.     else
  18.         puts(ARG1);
  19.     return 0;
  20. }
  21.  
  22. int duplicavettore(char *a, char *b, int n){
  23.     if(n<0)
  24.         return 0;
  25.     for(int i=0;i<n;i++)
  26.         b[i]=a[n-i-1];
  27.     return 1;
  28. }
  29.  
  30. int palindro(char *s){
  31.     int len=strlen(s);
  32.     int n=len/2;
  33.     char bak[n+1];
  34.     if (duplicavettore(s, bak, n)==0){
  35.         fprintf(stderr, "Duplicazione fallita\n");
  36.         exit(0);
  37.     }
  38.     bak[n]='\0';
  39.     if(strcmp(s+n+len%2, bak)==0)
  40.         return 1;
  41.     return 0;
  42. }
  43.  
  44. int checkcorr(char * a, char * b){
  45.     char c[strlen(a)+strlen(b)+1];
  46.     sprintf(c, "%s%s", a, b);
  47.     return palindro(c);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement