Advertisement
ForcaDz

TP11: Exercice4

Apr 4th, 2023
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define TRUE 1
  5. #define FALSE 0
  6. #define MAX 10
  7.  
  8.  int commence_par (char *chaine , char *motif )
  9.  {
  10.      if (*motif=='\0')
  11.      {
  12.          return TRUE;
  13.      }
  14.      else if ( *motif==*chaine)
  15.      {
  16.          return commence_par( chaine+1 , motif+1);
  17.      }
  18.      else
  19.      {
  20.           return FALSE;
  21.      }
  22.  }
  23.  
  24.  
  25.   int contient ( char *chaine , char *motif )
  26.   {
  27.       if ( *chaine =='\0')
  28.       {
  29.           return FALSE;
  30.       }
  31.       else if ( commence_par( chaine , motif)==1 )
  32.       {
  33.           return TRUE;
  34.       }
  35.       else
  36.       {
  37.           return contient( chaine+1 , motif);
  38.       }
  39.   }
  40.  
  41.  
  42.  
  43.    int contient_ind( char *chaine , char *motif )
  44.    {
  45.        if ( contient( chaine , motif ) == 0)
  46.        {
  47.            return -1;
  48.        }
  49.        else if ( commence_par( chaine , motif )==1)
  50.        {
  51.            return  TRUE;
  52.        }
  53.        else
  54.        {
  55.            return 1+contient_ind( chaine+1 , motif );
  56.        }
  57.  
  58.    }
  59.  
  60. int main()
  61. {
  62.      char chaine[MAX]="test";
  63.      char motif[MAX]="es";
  64.  
  65.      printf("La chaine  '%s'  commence-t-elle par le motif : '%s'   ?\n",chaine,motif);
  66.      if (commence_par(chaine,motif)==1)
  67.         {
  68.             printf("TRUE\n");
  69.         }
  70.      else
  71.         {
  72.             printf("FALSE\n");
  73.         }
  74.  
  75.      printf("La chaine  '%s'  contient-elle par le motif  '%s'   ?\n",chaine,motif);
  76.      if (contient(chaine,motif)==1)
  77.         {
  78.             printf("TRUE\n");
  79.         }
  80.      else
  81.         {
  82.             printf("FALSE\n");
  83.         }
  84.  
  85.      printf("La position de   '%s'    dans    '%s'   est:\n",motif,chaine);
  86.      printf("%d",contient_ind(chaine, motif));
  87.  
  88.      
  89.      return 0 ;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement