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

Строки. Поменять местами слова - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать базовый класс Элемент http://www.cyberforum.ru/cpp-beginners/thread850365.html
Описать базовый класс Элемент. Закрытые поля: имя элемента (строка символов); количество входов элемента; количество выходов элемента. Методы: конструктор класса без параметров; ...
C++ Создание окна WinAPI в Visual Studio, графика и кнопки собственно вопрос - как? конечно понимаю что можно и другие кнопочки потыкать, может там и проще будет. Интересует именно это. http://www.cyberforum.ru/cpp-beginners/thread850359.html
Теряется указатель на переменые в классе C++
образован двусвязный список. Данные находятся в трех перменныех, посел поступления данных в функцию sAge указатели на перменные типа char теряются и значения перменных _name, _univer "+ st1...
C++ Вывод переменной из txt-файла
чтобы записать переменную в .txt, пишу ofstream myfile; myfile.open ("example.txt"); myfile << perem1; myfile.close(); как мне записанное в .txt записать в переменную?
C++ Подсчет слов, введенных с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread850328.html
Есть такая практическая задача, надо написать прогу, которая считает слова при вводе их с клавиатуры, притом в несколько строк и прекращать подсчет при встрече слова "done". Например такой ввод: ...
C++ Составить регулярное выражение Здравствуйте, помогите пожалуйста составить регулярное выражение для поиска фамилии и инициалов, например: Иванов И. И. Всё, что я смог сделать, так это вот это: "" подробнее

Показать сообщение отдельно
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
27.04.2013, 22:53
Или так
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 <string>
 
using namespace std;
 
pair<string::size_type, string::size_type>
getWord(const string &str, string::size_type i)
{
    for(string::size_type wordlen(0); i != str.size() && i != string::npos; i++) {
        if (isalpha(str[i]))
            ++wordlen;
        else {
            if (!wordlen)
                continue;
            if (str[i]=='-' && isalpha(str[i+1])){
                ++wordlen;
                continue;
            }
            string::size_type wordstart = i - wordlen;
            return make_pair(wordstart, wordlen);
            wordlen = 0;
        }
    }
    return make_pair(string::npos, 0);
}
 
int main()
{
    string str = "word text loop cream scope";
    str.push_back(' ');
 
    auto p1 = getWord(str, 0), p2 = getWord(str, p1.first + p1.second);
 
    while (p1.first != string::npos && p2.first != string::npos) {
        string word = str.substr(p2.first, p2.second);
        str.replace(p2.first, p2.second, str, p1.first, p1.second);
        str.replace(p1.first, p1.second, word);
        p1 = getWord(str, p2.first + p2.second);
        p2 = getWord(str, p1.first + p1.second);
    }
 
    cout << "Replaced: " << str;
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru