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
Download Pattern matching program.
Output of 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; }
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:
Post a Comment