You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.7 KiB
C

/*
* C Program to find Longer Repeating Sequence
*/
#include <stdio.h>
#include <string.h>
void main()
{
char s1[100], ar[10][20], ar1[10][20], new[10];
int i, j = 0, k = 0, l, count = 0, flag = 0, n, temp, len[20];
printf("\nenter the string:");
scanf(" %[^\n]s", s1);
/*COPYING GIVEN STRING TO 2D ARRAY*/
for (i = 0; s1[i] != '\0'; i++,j++)
{
if (s1[i] >= 33 && s1[i] <= 64)
i++;
if (s1[i] == ' ')
{
ar[k][j] = '\0';
k++;
i++;
j = 0;
}
ar[k][j] = s1[i];
}
ar[k][j] = '\0';
/*PLACING THE REPEATED WORDS AND LENGTHS INTO NEW ARRAY*/
l = 0;
for (i = 0; i <= k; i++)
{
for (j = i + 1; j <= k; j++)
{
if (strcmp(ar[i], ar[j]) == 0)
{
for (n = 0; n < l && l != 0; n++)
{
if (strcmp(ar[i], ar1[k]) == 0)
{
flag = 1;
break;
}
}
if (flag != 1)
{
strcpy(ar1[l], ar[i]);
len[l] = strlen(ar1[l]);
l++;
}
flag = 0;
break;
}
}
}
printf("\n");
/*SORTING IS DONE BASED ON THEIR LENGTHS*/
for (i = 0; i < l; i++)
{
for (j = i + 1; j < l; j++)
{
if (len[i] < len[j])
{
temp = len[i];
strcpy(new, ar1[i]);
len[i] = len[j];
strcpy(ar1[i], ar1[j]);
len[j] = temp;
strcpy(ar1[j], new);
}
}
}
maxlen = len[0];
for (i = 0; i < l; i++)
{
if (len[i] == maxlen)
printf("\nthe longer repeating sequence of the given string is: %s", ar1[i]);
}
}
/*
*OUTPUT:
enter the string:Welcome to C Programming Class, Welcome Again to C Programming Class!
the longer repeating sequence of the given string is: Programming
*/