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

Найти вторую строку в первой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как инвертировать первый бит у int? http://www.cyberforum.ru/cpp-beginners/thread677517.html
Что-то я совсем плохо соображаю. Напомните, пожалуйста, как инвертировать первый бит у int? Что бы если б там был ноль, то стал 1 и наоборот. При этом остальные биты чтоб не затрагивал. Система может быть как 16, так 32, так и 64 битной Прила в голову идея, что первый бит отвечает за четность числа... Но хотелось бы оформить это покрасивее что ли
C++ Для к-го дня года определить день недели Для к-го дня года, определить день недели. нумерация с 0-воскресенье..6-суббота. Первый день года был понедельник(1). Кода нет, просто не могу представить как это сделать. http://www.cyberforum.ru/cpp-beginners/thread677514.html
C++ Перегрузка унарного оператора
Помогите пожалуйста ! Очень нужно написать программу которая переводит валюту из евро в гривны используя класс и перегрузку унарного оператора. Курс 1евро=10.5 грн. Если можно, с коментариями. Заранее благодарен.
Написать функцию, которая формирует строку, состоящую только из цифр, входящих в исходную строку C++
Нужна помощь задачу нужно написать в консольном режиме Написать и протестировать функцию, которая по заданной строке str формирует новую строку, состоящую только из цифр, входящих в str. Dron16, к 205 сообщению пора знать правила форума, в частности, п. 4.3
C++ Перегрузка оператора << http://www.cyberforum.ru/cpp-beginners/thread677503.html
Можно ли перегрузить оператор << не как дружественную функцию? struct ListItem { int data; ListItem *next, *prev; }; class List { ListItem *head, *tail;
C++ Найти угол между векторами А и В Найти угол между векторами А и В по формуле: ф=arcos((A,B)/sqrt((A,A)(B,B))) AB Скалярное произведение векторов оформить в виде функции подробнее

Показать сообщение отдельно
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
23.10.2012, 14:12     Найти вторую строку в первой
Для char*
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const char * const str1 = "abcdefghjklmnopqrstuvwxyz";
const char * const str2 = "fgh";
bool success = false;
int index = -1;
for (int i = 0; (i < Len(str1)) && !success; ++i)
{
    int j = 0;
    for (j = 0; j < Len(str2); ++j)
    {
        if (str2[j] != str1[i + j])
            break;
    }
    if (j == Len(str2))
    {
        success = true;
        index = i;
     }
}
Это решение в лоб. Плюс надо всякие проверки добавить на невыход за пределы строк.
Можно это всё дело ускорить, сравнивая не тупо посимвольно, а например так: отступить от начала первой строки длину второй, проверить посл.символ второй строки и текущий, если не совпали - ещё отступить на длину второй строки. Если совпали - цикл сравнения с первого символа второй строки и соответствующего первой. С индексами там игра идёт.
 
Текущее время: 06:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru