#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *sub(const char*s,char *z)  /* substring mit ausschließlich aufsteigender ASCII-Zeichenfolge ab 1. Position */
{
	while(*s)
	{
		if(*z)
		{
			if(z[strlen(z)-1]<*s)
			strncat(z,s,1);
			else
			break;
		}
		else
		*z=*s;
		++s;
	}
	return z;
}

char *folgensuche(const char* str, char* ziel)
{
	while(*str) /* ab jeder Position suchen und mit bisher längstem Substring vergleichen */
	{
		char z[64000]="";
		if(strlen(sub(str++,z))>strlen(ziel))
		strcpy(ziel,z);
	}
	return ziel;
}

int main()
{
    const char *str="kotafgovlav";

    char ziel[64000]="";

    puts(folgensuche(str,ziel));

    return 0;
}
