Форум программистов, компьютерный форум CyberForum.ru

Поиск подстроки - C++

Восстановить пароль Регистрация
 
morphei
Сообщений: n/a
12.03.2014, 19:39     Поиск подстроки #1
Функция char* findPstr(char* str1, char* str2), получив строку str1, ищет в ней первую подстроку, равную строке str2. Если такая подстрока найдена, то функция через возвращаемое значение возвращает адрес найденной подстроки. Если подстрока не найдена, то функция возвращает 0.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* findPstr(char* str1, char* str2)
{
    int s=0;
    for(int i = 0;str1[i]!=0; i++)
    {
        
            if (str1[i]==str2[0]) 
            {   
                for(int n=1;str2[n]!=0;n++)
                {   
                    if (str2[n]!=str1[i+n]) s=1;
                }
                if(s==0) return str2; 
            }
            
    }
    return 0; 
        
}
если подстрока найдена, то всё ок, а если нет, то выдаёт: Необработанное исключение в "0x566dd540 (msvcr100d.dll)" в "tests.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000". и открывает strlen.asm
в чём проблема, как исправить? заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 19:39     Поиск подстроки
Посмотрите здесь:

C++ Поиск подстроки
Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. C++
Поиск подстроки C++
Поиск подстроки C++
C++ Поиск подстроки
Поиск подстроки C++
C++ Поиск подстроки
Поиск подстроки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru