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

Укажите ошибку! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как в С++ работать с синусами, косинусами? http://www.cyberforum.ru/cpp-beginners/thread822335.html
Как в С++ работать с синусами, косинусами?? Допустим передать в функцию радианы(или градусы?), а там считать синус косинус? Что почитать?
C++ Поиск в файле по буквам Я, допустим, имею текстовый файл со словами. Я не понимаю, как сделать так, чтобы вводишь букву или несколько букв и программа выводит список слов, начинающихся на те или иные буквы http://www.cyberforum.ru/cpp-beginners/thread822328.html
Подскажите пожалуйста, я тут новенький в чем ошибка? C++
"int main (void){int х, *р; х = 10; *р = х;return 0;}" Я долгое время не как не пойму... У казатель "р" не получает адреса, как мне кажеться..
C++ В строке удвоить все символы ‘&’. Под вставкой символа n в строку после к-го элемента понимается смещение всех элементов, начиная с (к+1)-го вправо
В строке удвоить все символы ‘&’. Под вставкой символа n в строку после к-го элемента понимается смещение всех элементов, начиная с (к+1)-го вправо на 1 позицию и присваивание (к+1)-му элементу строки значения n. #include <iostream> #include <string> using namespace std; int main() { string s;
C++ Передача параметров в функцию по умолчанию http://www.cyberforum.ru/cpp-beginners/thread822314.html
Передача параметров в функцию по умолчанию. Написать встроенную функцию, которая считает площадь квадрата со стороной А, если известно, что значение А – вещественное число, значение по умолчанию=1.0.
C++ Трансляция консольного проекта под оконное Здравствуйте, уважаемые знатоки :) Я сверх-новый ученик языка c++ вот... и многие моменты мне еще не совсем известны, такие что даже msld ну даже гугл не помогает... >:) Создал приложение на консоле, всё работает в меру хорошо, НО МНЕ НЕОБХОДИМО перевести в WinForm... В чем проблема? Очень непросто :) При подключение инклуда <TlHelp32.h> компилятор ругает меня самыми плохими словами... ... подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
29.03.2013, 22:51     Укажите ошибку!
Никитах, вот вам мой вариант, мне кажется так будет лучше и понятней

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
include <iostream>
#include <algorithm>
#include <string>               
using namespace std;
 
//предикат для нахождения искомого символа
bool alpha(char elem)
{
    //возвращаем true если символ найден
    return elem == '&';
}
 
int main()
{
    char symbol = '&'; 
    string str("Hell&o w&orl&d");
    str.reserve(str.size() * 2);            //т.к. работаем с итераторами, резервируем 
                                            //память, чтобы избежать перереспределения
                                            //при вставке дубликатов
 
    //итератор
    string::iterator pos = str.begin();        
 
    //идем до конца строки и ищем
    while((pos = find_if(pos, str.end(), alpha)) != str.end()) 
    {
        //вставляем дубликат 
        str.insert(++pos, symbol);
        //переходим на новый символ
        ++pos;
    }
    
    //выводим результат
    cout << str << endl;
 
    cout << "\n\n";
    return 0;
}
Добавлено через 15 минут
Никитах, а вот твой вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>               
using namespace std;
 
int main()
{
    string s("Hell&o w&orl&d");
 
    for(unsigned i = 0; i < s.size(); ++i)
    {
        if(s[i] == '&')
        {
            string tmp(s, i, s.size() - i);     //промежуточная строки
            string tmp1(s, 0, i + 1);
            tmp1 += tmp;
            s = tmp1;
            ++i;
        }
    }
 
    cout << s << endl;
}
 
Текущее время: 00:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru