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

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

Войти
Регистрация
Восстановить пароль
 
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
#1

Не работает программа - C++

25.08.2012, 23:24. Просмотров 360. Ответов 8
Метки нет (Все метки)

В идеале, она должна выводить "Daniil", но она даже не компилится, не подскажете в чем дело?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <string>
 
 
int main()
{
    std:: string s ("Hello, My name is Daniil"), tmp ("");
    tmp.resize (100);
    std::copy (std::find (s.begin(), s.end(), "Daniil"), std::find (s.begin(), s.end(), "Daniil") + 7, tmp.begin());
    std:: cout << tmp << "\n";
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2012, 23:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает программа (C++):

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Программа , которая выводит время, за которое программа работает - C++
Вообщем, нужно что бы считалось время от начала работы программы, и выводилось на экран.

Программа работает в турбо си но не работает в дев си - C++
#include&lt;graphics.h&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;dos.h&gt; #define R &quot;C:\\TC\\bgi&quot; void...

Программа работает на Windows 7, но не работает на XP - C++
#include &lt;locale&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; int main () { std::string wont; size_t i; ...

Программа при релизе не работает, а при дебаге работает - C++
#include&lt;iostream&gt;; #include &lt;iomanip&gt; #include&lt;fstream&gt; using namespace std; void printMatrix (int **a, int n, int m) // функція...

Не работает программа - C++
Раньше я программировал на планшете, но сейчас попробовал в DEV-C++. Сделал программу, откомпилировал, пробую запустить, а окно программы...

8
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.08.2012, 23:27 #2
Dani, std::string::iterator указывает на символ, а вы пытаетесь его со строкой сравнить.
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
25.08.2012, 23:31  [ТС] #3
soon, можете подробнее. Где именно я его сравниваю?
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.08.2012, 23:32 #4
Dani, в find же.
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
25.08.2012, 23:38  [ТС] #5
soon, ... все равно понять не могу.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.08.2012, 23:43 #6
Dani, Это элементарно же. http://cplusplus.com/reference/algorithm/find/

Поведение примерно эквивалентно

C++
1
2
3
4
5
6
template<class InputIterator, class T>
  InputIterator find ( InputIterator first, InputIterator last, const T& value )
  {
    for ( ;first!=last; first++) if ( *first==value ) break;
    return first;
  }
Собственно *first - char, а value - const char[7]. Как интересно организовать сие сравнение?
1
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
25.08.2012, 23:44 #7
Dani, std::find перебирает элементы переданной ему последовательности один за другим, и сравнивает каждый из них с третьим параметром. Элементами строки являются символы, а третьим параметром у вас передаётся строка. Т.е. std::find не подходит для поиска подстроки, если хотите использовать алгоритмы, используйте std::search.
1
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.08.2012, 23:47 #8
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main()
{
    std::string s("Hello, My name is Daniil"), tmp;
    // tmp.resize (100);
    tmp = s.substr(s.find("Daniil"), 7);
    std::cout << tmp << std::endl;
    return 0;
}
1
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
25.08.2012, 23:52  [ТС] #9
Все, разобрался. Спасибо. Туплю.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2012, 23:52
Привет! Вот еще темы с ответами:

Не работает программа - C++
Добрый вечер уважаемые форумчане, прошу вашей помощи. Определить, является ли целая квадратная матрица порядка n симметричной (относительно...

Не работает программа - C++
Что я сделал не так? При запуске получается бесконечный ввод. Если нужно, прилагаю задание как фото. Мои подпункты: I)б; II)ааа. Огромное...

Программа не работает - C++
Я написал пример так как он в методе, а мне выбивает ошибку... может потому что у меня DEV C++? Ошибки не могу разобрать Пример...

Не работает программа - C++
По идее эта программа должна с помощью функции getline() считывать строки текстового файла и проверять, является ли записанное в каждой...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
25.08.2012, 23:52
Ответ Создать тему
Опции темы

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