Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2016, 15:19   #21
ezu
 
Регистрация: 26.02.2016
Сообщений: 9
По умолчанию

Цитата:
Сообщение от wordman Посмотреть сообщение
Код:
#include <stdio.h>
#include <string.h>
int main()
{
    char ishod[100], predl1[100]="", predl2[100]="", slovo[100]="", big_slovo[100]="", slovo2[100]="", ch1, ch;
    int l_ishod, end1=0, end2=0, l_pred1=0, l_pred2=0, i, j, l_big=0, l_slovo=0, newslovo=1, slova_sovpali=0, i_slova=0, l_slovo2=0, est_big_slovo=0;
    puts("Vvedite predlogeniy!");
    gets(ishod);
    l_ishod=strlen(ishod);
//----------------------------------ðàçáèâêà ñòðîêè ââîäà íà 2 ïðåäëîæåíèÿ
    for (i=0;i<=l_ishod; i++)
    {
        if (ishod[i]=='.' || ishod[i]=='!' || ishod[i]=='?')
        {
            if (end1==0)
            {
                end1=i;
                predl1[i]=ishod[i];
                predl1[i+1]='\0';
            }
            else 
            {
                predl2[end2]=ishod[i];
                predl1[end2+1]='\0';
                end2=i+1;
                break;
            }
        }
        if (end1==0) predl1[i]=ishod[i];
        else if (ishod[i]!='.' && ishod[i]!='!' && ishod[i]!='?') predl2[end2++]=ishod[i];
    }
//--------------------------------------------------
    l_slovo=0;
    for (i=0; i<=end1; i++)
    {//ïðîõîæó ïåðâîå ïðåäëîæåíèå ïî âñåì ñëîâàì
        ch=predl1[i];
        if (ch==' ' || ch==',' || ch=='.' || ch=='!' || ch=='?' || ch==':' || ch==';')
        {//------------------åñëè ñëîâî çàêîí÷èëîñü
            slovo[l_slovo]='\0';
        //--------------------------------------------
            if (l_slovo>l_big)
            {//ñëîâî ìîæåò îêàçàòüñÿ ñàìûì áîëüøèì
            //-----------èùó â predl2
                j=0;
                slova_sovpali=0;
                while (j<=end2-l_slovo && !slova_sovpali)
                {//èùó ñëîâà âî 2ì ïðåäëîæåíèè
                    ch1=predl2[j++];
                    if (ch1==' ' || ch1==',' || ch1=='.' || ch1=='!' || ch1=='?' || ch1==':' || ch1==';' || ch1=='\0')
                    {//åñëè êîíåö ñëîâà
                        slovo2[l_slovo2]='\0';
                        if (strcmp(slovo, slovo2)==0)
                        {
                            slova_sovpali=1;
                            est_big_slovo=1;
                            l_big=l_slovo;
                            strcpy(big_slovo, slovo);
                        }else{
                            l_slovo2=0;
                        }
                    }else{
                        slovo2[l_slovo2++]=ch1;
                    }
                }
            }
                
            l_slovo=0;
        }else
        {
            slovo[l_slovo++]=ch;
        }
    }
    puts("Big word:");
    if (est_big_slovo){
        puts(big_slovo);
    }else{
        puts("Net odinakovih slov!");
    }
 }
Этот вариант вроде на всех примерах прошёл.
ps: малёхо стыдно за недостаточное тестирование перед первым выкладыванием.
Спасибо) я разобрался хоть более менее с темой
ezu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строк shadow155 Помощь студентам 1 10.09.2015 10:55
Три задачи на Delphi (Паскаль): обработка строк, обработка множеств, работа с типизированным файлом Тедеев Помощь студентам 11 13.12.2013 13:38
Обработка Строк katya_bush Паскаль, Turbo Pascal, PascalABC.NET 4 14.11.2011 21:50
Обработка строк в С++ МаркиЗа Фриланс 10 13.06.2010 17:35
Обработка строк Dmitriy1989100 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 02.11.2009 22:28