Paste Search Dynamic
palindrome
  1. #include <regex.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6.  
  7. int palindrome(const char *s){
  8.     int longueur=strlen(s);
  9.     int i=0;
  10.     int result = 1;
  11.     while(i<longueur/2 && result==1){
  12.         if(s[i]!= s[longueur-1-i]){
  13.             result=0;
  14.             break;
  15.         }
  16.         i++;
  17.     }
  18.     if (result==0){
  19.         printf("faux \n");
  20.         return result;
  21.     } else if (result==1){
  22.         printf("vrai \n");
  23.         return result;
  24.     }
  25.    
  26. }
  27.  
  28. int string_size(const char *s) {
  29.     return sizeof (s) / sizeof(char);
  30. }
  31.  
  32. int est_nombre(char ch){
  33.     if(isdigit(ch)){
  34.         return 1;
  35.     }
  36.     return 0;
  37.    
  38.    
  39. }
  40.  
  41. int alphaNumeric(char ch){
  42.     if(!isalnum(ch)){
  43.         return 0;
  44.     }
  45.     return 1;
  46. }
  47.  
  48. int palindrome2(char *s){
  49.     /*if(fgets(s, string_size(s), stdin)==NULL){
  50.         printf("Erreur \n");
  51.         return NULL;
  52.     }*/
  53.  
  54.     char *s2 = malloc(sizeof(s));
  55.    
  56.     //suppression espaces
  57.     for(int i=0; i<string_size(s); i++){
  58.         if(!(isspace(s[i])) && alphaNumeric(s[i])==1 && est_nombre(s[i])==0){
  59.             s2[i]=tolower(s[i]);
  60.             printf("%c", s2[i]);
  61.         }
  62.        
  63.     }
  64.     printf("\n");
  65.  
  66.     int pal = palindrome(s2);
  67.     if(pal==1){
  68.         printf("c'est un palindrome \n");
  69.         return 1;
  70.     }else {
  71.         printf("ce n'est pas un palindrome \n");
  72.         return 0;
  73.     }
  74. }
  75.  
  76. /*int palindrome2(const char *s){
  77.     int longueur=0;
  78.     char s2[128]="";
  79.     int i;
  80.     int j;
  81.     int palindrome = 1;
  82.    
  83.     if(fgets(s, s.size, stdin)==NULL){
  84.         printf("Erreur \n");
  85.         return NULL;
  86.     }
  87.    
  88.     //conv min en maj
  89.     for(int i=0; i<s.size; i++){
  90.         if(s[i]>='A' && s[i]<='Z'){
  91.             s[i]=(s[i]-'A')+'a';
  92.         }
  93.     }
  94.    
  95.     //suppression espaces
  96.     for(int i=0; i<s.size; i++){
  97.         if(s[i]!=' '){
  98.             s2[++j]=s[i];
  99.         }
  100.         s2[++j]='\0';
  101.     }
  102.     for(int i=0; i<=j ; i++){
  103.         for(int j=strlen(s2)-1; j>=i ; j--){
  104.             if(s[i]==s2[j]){
  105.                 palidrome=1;
  106.             }
  107.             else{
  108.                 palidrome=0
  109.                 break;
  110.                 break;
  111.             }  
  112.         }
  113.     }
  114.    
  115.     if(palindrome==1){
  116.         printf("c'est un palindrome \n");
  117.         return 1;
  118.     }else {
  119.         printf("ce n'est pas un palindrome \n");
  120.         return 0;
  121.     }
  122. } */
  123.  
  124. int main(){
  125.     char str[20];
  126.     scanf("%s", str);
  127.     palindrome(str);
  128.    
  129.     palindrome2(str);
  130. }
Parsed in 0.010 seconds