How can we write a program which will print all possible sub strings of  the given string

Example:

Input: abcdefgab

Output:
a
b
c
d
e
f
g
a
b
ab
bc
cd
de
ef
fg
ga
ab
abc
bcd
cde
def
efg
fga
gab
abcd
bcde
cdef
defg
efga
fgab
abcde
bcdef
cdefg
defga
efgab
abcdef
bcdefg
cdefga
defgab
abcdefg
bcdefga
cdefgab
abcdefga
bcdefgab
abcdefgab

Solution: C 

#include <stdio.h>

void printstr(char arr[], int start, int end)
{
    int i;
    for(i=start;i<=end;i++)
    {
        printf("%c",arr[i]);
    }
    printf("\n");
}


void substrings(char arr[], int n)
{
    int loop,j,start,end;
    int no_of_strings = n-1;

    for(loop=0;loop<n;loop++)
    {
        start = 0;
        end = start+loop;
        for(j=no_of_strings;j>=0;j--)
        {
            printstr(arr,start, end);
            start++;
            end = start+loop;
        }
        no_of_strings--;
    }

}

int main()
{   
    char str[] = "abcdefgab";
    substrings(str,9);
    return 0;
}



HR Interview

Technical Interview

Important Tips