/*
 * 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
*/