Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Nike1995
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288
1

Поиск подстроки в строке

04.12.2015, 22:35. Просмотров 537. Ответов 1
Метки нет (Все метки)

есть код, только я не очень понимаю как он работает
P.S. считает сколько раз входит подстрока в строку.
C
1
2
3
4
5
6
7
8
9
10
11
12
char *ptr = line; // line-входная строка
...................
do
    {
        ptr = strstr(ptr, from); // from- это подстрока
        if (ptr)
        {
            ptr += strlen(from);
            printf("%s\n", ptr);
            j++;   // кол-во вхождений подстроки
        }           
    }while(ptr);
Попробовал скомпилировать
есть строка: Search engine information on the Internet,
как подстроку даю: o
результат программы:
C
1
2
3
rmation on the Internet,
n on the Internet,
n the Internet,
Я понимаю, что строчка ptr += strlen(from) удаляет все символы до подстроки включительно, но не понимаю как она работает, ptr-это указатель на массив символов, а strlen(from) - целое значение. Т.е. должна выпасть ошибка: использовано без приведения типов, но её нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2015, 22:35
Ответы с готовыми решениями:

Поиск подстроки в строке
Нужно сделать поиск подстроки в строке на С. Без использования встроенной...

Поиск подстроки в строке
помогите пожалуйста написать без string

Поиск подстроки в строке
Здравствуйте! Необходимо выполнить следующее задание. В заданной строке найти...

Поиск подстроки в строке
Программу я написал, но она не хочет работать, не могу отладить... ...

Поиск подстроки в строке
Задача заключается в том, что есть один массив, состоящий из "ab cd ef" и есть...

1
lonelyhunter
63 / 63 / 60
Регистрация: 11.11.2015
Сообщений: 342
05.12.2015, 10:42 2
Эта строчка ничего не удаляет, она просто двигается по строке на количество символов в строке from. Изначально ptr указывал на одно место в строке, затем начинает указывает на другое (+кол-во символов from)

Указатель это тоже целое число - адрес в памяти.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2015, 10:42

Поиск подстроки в строке с маской
Суть вот в чем: дан текст и маска. Маска содержит буквы и символ заполнитель *,...

Как осуществить поиск подстроки в строке?
Как осуществить поиск подстроки в строке на языке С ??

Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку
Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru