В строке определить самую длинную последовательность символов, стоящих по возрастанию - 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);

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы