В строке определить самую длинную последовательность символов, стоящих по возрастанию - C (СИ)
Формулировка задачи:
Ребят, спасайте! Проболел последние пол семестра, теперь не могу ни как разобраться со строками. Совершенно не могу понять как решить эту задачу. Помогите решить и/или поделитесь материалом по строкам^^
Задание:
В строке определить самую длинную последовательность символов, стоящих по возрастанию.
Входные данные:
abc012#*&defg346dezxc
Выходные данные:
346dez
Решение задачи: «В строке определить самую длинную последовательность символов, стоящих по возрастанию»
textual
Листинг программы
char s[]="abc321012#*&defg346dezxc";
char *pmax,*pb,*p;
int nmax,n;
for(nmax=n=0,pmax=s,p=s+1; *p; p++)
if(*p>p[-1])
if(!n)
{
n=2;
pb=p-1;
}else n++;
else
{
if(nmax<n)
{
nmax=n;
pmax=pb;
}
n=0;
}
pmax[nmax]=0;
printf("%s\n",pmax);