adsense


Tuesday, 17 November 2015

C LANGUAGE PROGRAM FOR PATTERN MATCHING,PATTERN MATCHING IN C PAGE 17








COMPUTER LANGUAGES HTML,C,C++.JAVA,.NET AND MULTIMEDIA basics and programs click home button


C LANGUAGE PROGRAM FOR PATTERN MATCHING,PATTERN MATCHING IN C





C program for pattern matching, pattern matching in c


Pattern matching in c: C programming code to check if a given string is 
present in another string, For example the string "programming" is present 
in "c programming". If the string is present then it's location (i.e. at 
which position it is present) is printed. We create a function match which 
receives two character pointers and return the position if matching occurs 
otherwise returns -1. We are implementing naive string search algorithm in 
our c program

C programming code


#include <stdio.h>
#include <string.h>
 
int match(char [], char []);
 
int main() {
  char a[100], b[100];
  int position;
 
  printf("Enter some text\n");
  gets(a);
 
  printf("Enter a string to find\n");
  gets(b);
 
  position = match(a, b);
 
  if(position != -1) {
    printf("Found at location %d\n", position + 1);
  }
  else {
    printf("Not found.\n");
  }
 
  return 0;
}
 
int match(char text[], char pattern[]) {
  int c, d, e, text_length, pattern_length, position = -1;
 
  text_length    = strlen(text);
  pattern_length = strlen(pattern);
 
  if (pattern_length > text_length) {
    return -1;
  }
 
  for (c = 0; c <= text_length - pattern_length; c++) {
    position = e = c;
 
    for (d = 0; d < pattern_length; d++) {
      if (pattern[d] == text[e]) {
        e++;
      }
      else {
        break;
      }
    }
    if (d == pattern_length) {
      return position;
    }
  }
 
  return -1;
}
Download Pattern matching program.
Output of program:
 
C program for pattern matching using pointers

#include<stdio.h>
 
int match(char*, char*);
 
main()
{
   char a[100], b[100];
   int position;
 
   printf("Enter some text\n");
   gets(a);
 
   printf("Enter a string to find\n");
   gets(b);
 
   position = match(a, b);
 
   if(position!=-1)
      printf("Found at location %d\n", position+1);
   else
      printf("Not found.\n");
 
   return 0;   
}
 
int match(char *a, char *b)
{
   int c;
   int position = 0;
   char *x, *y;
 
   x = a;
   y = b;
 
   while(*a)
   {
      while(*x==*y)
      {
         x++;
         y++;
         if(*x=='\0'||*y=='\0')
            break;         
      }   
      if(*y=='\0')
         break;
 
      a++;
      position++;
      x = a;
      y = b;
   }
   if(*a)
      return position;
   else   
      return -1;   
}


No comments: