Monday, 5 June 2017

Search for substring in two dimensional array

Save the string “WELCOMETOZOHOCORPORATION” in a two dimensional array and search for substring like “too” in the two dimensional string both from left to right and from top to bottom.
W E L C O
M E T O Z
O H O C O
R P O R A

T I O N
And print the start and ending index as
Start index : <1,2>
End index: <3, 2>

#include<stdio.h>

#include<string.h>

 int i,j,cols,k=-1;

 char a[50],b[50][50],t=0,search[50]; 

void searchword(char b[50][50],char search[50],int i1,int j1 )  //searching given substring



 int i=0,j=j1,end1,end2,found=0;

  for(i=0;i<strlen(search);i++)

  {

     if(b[i1][j1]==search[i]){//printf("%c",search[i]);

        end1=i1;end2=j1;++j1;++found;

     }

     else {

     break;}

  }

     if(found==strlen(search))

     {    printf("start index : <%d,%d>\n",i1+1,j+1);

          printf("end index   : <%d,%d>\n",end1+1,end2+1);found=0;

           } j1=j;j=i1;found=0;

  for(i=0;i<strlen(search);i++)

  {

    if(b[i1][j1]==search[i]){

     end1=i1;end2=j1;++i1;++found;}

    else {break;  }

  }     

  if(found==strlen(search))

   { printf("start index : <%d,%d>\n",j+1,j1+1);

     printf("end index   : <%d,%d>\n",end1+1,end2+1);found=0;} 

}

int main()

{

 scanf("%s",a);       // input string 

 scanf("%d",&cols);   //column width

 scanf("%s",search);   //substring

  for(i=0;i<=strlen(a)/cols;i++)

  {

    for(j=0;j<cols;j++)

    {  

        b[i][j]=a[++k];printf("%c ",b[i][j]);

    }

printf("\n");

  }

 k=0;

 for(i=0;i<=strlen(a)/cols;i++)

 {

     for(j=0;j<cols;j++)

     {

         if(b[i][j]==search[0])

         {

             searchword(b,search,i,j);   // pass 1st indexes present in given matrix

         }

     }

 }

 return 0;

 }


 OUTPUT :







No comments:

Post a Comment