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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FrankyMO
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 90
#1

Поиск последнего вхождения в строку заданной подстроки - C++

17.01.2014, 00:28. Просмотров 585. Ответов 3
Метки нет (Все метки)

8.8.1.

Помогите, пожалуйста, решить задачу в С++.

Написать программу поиска последнего вхождения в строку заданной подстроки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 00:28     Поиск последнего вхождения в строку заданной подстроки
Посмотрите здесь:

Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. - C++
#include <stdio.h> int count_of_substrings(string s, string s1){ int start = 0; int count = 0; int pos = 0; ...

Своя функция lastpos (поиск последнего вхождения подстроки в строку) - C++
Написать функцию, которая выполняет действие функции LastPos(s,s1)поиск последнего вхождения под строки s1 в строку s. Но без использовании...

Поиск в заданной строке последнего вхождения заданного символа - C++
Помогите написать функцию, которая ищет в заданной строке последнее вхождение заданного символа (char *strrchr(const char *s1, int c)

Поиск вхождения подстроки - C++
int AString::find(char* podstr) { if (strstr(str, podstr) != NULL) return (int) (strstr(str, podstr) -str); else return -1; } ...

Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2 - C++
Помогите решить задачку пож. 1. Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2 2. Удалить первые вхождения...

Как узнать индекс вхождения подстроки в строку? - C++
Как задать шаблон строки? Объясню на примере: мне надо узнать индекс подстроки в строке, используя, например, String::IndexOf(String)....

Машина Тьюринга, определение вхождения подстроки в строку - C++
приветствую. собственно, задание по мт. вопрос не по части решения теоретического, а именно по реализации на c++. на вход мт поступает...

Найти координаты первого вхождения в заданную строку подстроки, состоящей из двух одинаковых заданных символов - C++
Найти координаты первого вхождения в заданную строку подстроки, состоящей из двух одинаковых заданных символов. Помогииииите

Найти индекс последнего вхождения символа, введённого пользователем, в заданную строку - C++
Уважаемые форумчане. Помогите, пожалуйста, написать программу по следующему условию: пользователь вводит отдельно строку и символ,...

Вставка подстроки в строку с заданной позиции - C++
Помогите, пожалуйста, расписать функцию insert (); #include <iostream> #include <string> using namespace std; int main() { ...

Определить, входят ли в заданную строку все символы заданной подстроки - C++
Задание:Определить, входят ли в заданную строку все символы заданной подстроки Нужно использовать библиотеку cstring (string.h). Но...

Реализовать вставку подстроки в строку, начиная с заданной пользователем позиции - C++
Доброго времени суток. Отстала по теме строки. Сижу читаю в инернете, но пока не удается написать полную программу. Помогите, пожалуйста,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
17.01.2014, 12:12     Поиск последнего вхождения в строку заданной подстроки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main(int argc, char* argv[])
{
    char str1[256] = "fruit apple apple big\0";
    char str2[256] = "apple\0";
 
    double d = 0.00; int r = strlen(str1)-1;
    while (r >= 0 && d < 1.00)
    {
        int i = 0, n = r--; d = 0.00;
        while (str1[n] != '\0' && str2[i] != '\0')
            d+=(str2[i++] == str1[n++]) ? (double)1/strlen(str2) : 0;
    }
 
    printf("%s\n%s (position = %d)\n", str1,str2,r+1);
 
    _getch();
 
    return 0;
}
http://codepad.org/8XwcGPpz
Миниатюры
Поиск последнего вхождения в строку заданной подстроки  
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
17.01.2014, 12:19     Поиск последнего вхождения в строку заданной подстроки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstring>
using std::cout;
using std::cin;
 
int main()
{
    const int maxLength = 128;
    char str[maxLength],substr[maxLength];
    cout <<"String: ";
    cin.getline(str,maxLength);
    cout <<"Substring: ";
    cin.getline(substr,maxLength);
    int i = strlen(str) - 1;
    int substrLength = strlen(substr);
    bool flag;
    int j,position = -1,tmpIndex;
    while (i>substrLength)
    {
        flag = true;
        j = 1;
        tmpIndex = i;
        while (j!=substrLength && flag)
        {
            if (substr[substrLength-j]!=str[i])
                flag = false;
            else
            {
                j++;
                i--;
            }
        }
        if (flag)
        {
            position = i;
            break;
        }
        else i = --tmpIndex;
    }
    if (position==-1)
        std::cout <<"Substring not found!\n";
    else std::cout <<"Substring is found: " <<position <<std::endl;
    return 0;
}
Ilot
Модератор
Эксперт С++
1789 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
17.01.2014, 12:40     Поиск последнего вхождения в строку заданной подстроки #4
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
int main()
{
    system("chcp 1251>0");
    std::string str = "Не много лет тому назад Не много лет тому назад", substr = "лет";
    std::string::reverse_iterator iter = std::search(str.rbegin(), str.rend(), substr.rbegin(), substr.rend());
    std::cout << "Последнее вхождение в позиции:" << iter - str.rbegin() + substr.size() << std::endl;
    /*Либо str.rend() - iter - substr.size() если с начала строки */
    return 0;
}
Yandex
Объявления
17.01.2014, 12:40     Поиск последнего вхождения в строку заданной подстроки
Ответ Создать тему
Опции темы

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