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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 21:32   #1
Паркер
Пользователь
 
Аватар для Паркер
 
Регистрация: 11.08.2011
Сообщений: 23
Вопрос Функция LastPos(s,s1)

Сказали разобраться в коде, а я вот, не все могу в нем понять!
Помогите, кто может! Пожалуйста))))))))))

В программе написана функция LastPos(s,s1)
Назначение: поиск последнего вхождения подстроки s1 в строку s.
Код:
#include "StdAfx.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
 
int mystrlen(const char * s){
        const char * p;
        for ( p = s; *p; ++p );
        return p - s;
}
 
char * mystrstr(const char * s1, const char * s2){
        const char * p1, * p2;
        
        while ( *s1 ){
                for ( p1 = s1, p2 = s2; *p2 && *p1 == *p2; ++p1, ++p2 )
                        ;
                if ( ! *p2 )
                        return (char*)s1;
                ++s1;
        }
        
        return NULL;
}
 
char * LastPos(const char * s1, const char * s2){
        const char * p = s1 + mystrlen(s1) - mystrlen(s2) + 1;
        
        while ( p > s1 )
                if ( mystrstr(--p, s2) )
                        return (char*)p;
                        
        return NULL;
}
 
int main(void){
        char s1[BUFSIZ], s2[BUFSIZ], * p;
        
        printf("String: ");
        scanf("%[^\n]%*c", s1);
        printf("Substring: ");
        scanf("%[^\n]%*c", s2);
        
        printf("Last substring: %s\n", ( p = LastPos(s1, s2) ) ? p : "not found!");
        getch();
        return 0;
}
Паркер вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция maxwel6064 Паскаль, Turbo Pascal, PascalABC.NET 4 07.11.2011 12:17
Функция Seferus Общие вопросы C/C++ 3 23.09.2010 02:08
ИФ функция fatal_err0r Microsoft Office Excel 2 18.03.2009 17:05
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50