Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите решить задачу !!! 
V
    Опции темы
Wok
Дата 23.12.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.12.2008

Репутация: нет
Всего: нет



Помогите пожалуйста решить 2 задачки на C++ с помощью STL

1. Дан текст. Найти последнее вхождение заданной подстроки и заменить ее на заданную строку.
Пример: Текст: ABC DEFG ABC HJK
              Подстрока которую нужно найти: ABC
              Заменить на: 1234
              Должно получиться: ABC DEFG 1234 HJK

2. Дан вектор целых чисел. Найти индекс первого элемента, который больше своего левого соседа. Среди оставшихся найти максимальный элемент.
Пример: 5 2 7 8 4 1
Ответ: Индекс равен 2 (если индексация с нуля), max=8
PM MAIL   Вверх
mes
Дата 23.12.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Wok @  23.12.2008,  14:12 Найти цитируемый пост)
Дан текст. 


Код

#include <iostream>

std::string str = "ABC DEFG ABC HJK";
std::string key = "ABC";
std::string str1 = "1234";

int main()
{
  size_t found;

  found=str.rfind(key);
  if (found!=std::string::npos)
    str.replace (found,key.length(), str1);

  std::cout << str << std::endl;

  system ("pause");
  return(0);
}




--------------------
PM MAIL WWW   Вверх
Wok
Дата 23.12.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.12.2008

Репутация: нет
Всего: нет



Большое спасибо!  smile 
А вторую кто-нить знает как решить?

Это сообщение отредактировал(а) Wok - 23.12.2008, 15:44
PM MAIL   Вверх
IKM2007
Дата 23.12.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 3
Всего: 40



Цитата(Wok @  23.12.2008,  14:12 Найти цитируемый пост)
Дан вектор целых чисел.

Код

#include <iostream>
const int n=7;
using std::cout;
using std::endl;
void main()
{
int a[n] = {8,7,6,5,4,3,2}, i, max;

for(i = 1; i < n; i++)
if(a[i] > a[i-1])
{
std::cout<<"\nindex="<<i<<endl;
break;
}

if(i >= n-1)
{
if(i == n)
cout<<"The required element does not exist.\n";

cout<<"The maximal element does not exist.\n";
return;
}

max=a[++i];
for(;i<n;i++)
if(max<a[i])
max=a[i];

cout<<"max="<<max<<endl;
}



--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
mes
Дата 23.12.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Wok @  23.12.2008,  14:12 Найти цитируемый пост)
. Среди оставшихся найти 

какой результат должен для такого ряда быть : 10, 1, 8, 7, 5  ?


--------------------
PM MAIL WWW   Вверх
IKM2007
Дата 23.12.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 3
Всего: 40



Цитата(mes @  23.12.2008,  16:10 Найти цитируемый пост)
10, 1, 8, 7, 5

index=2
max  =7


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
Rififi
Дата 23.12.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



Дан вектор целых чисел...
Код
#include <vector>
#include <algorithm>
#include <iostream>

int main()
{
    typedef std::vector<int> V;
    V v;
    //v += 5,2,7,8,4,1;

    V::iterator found = std::adjacent_find(v.begin(), v.end(), std::less<V::value_type>());
    if (found == v.end())
        return (0);

    V::difference_type index = std::distance(v.begin(), ++found);
    V::value_type max = std::max(
        *std::max_element(v.begin(), found),
        *std::max_element(found+1, v.end()));

    std::cout << index << " " << max << std::endl;
    std::cin.get();

    return (0);
}

PM MAIL   Вверх
Wok
Дата 23.12.2008, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 23.12.2008

Репутация: нет
Всего: нет



Всем спасибо за помощь!  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.