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

Строки: нахождение символов и замена слов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как в динамическом массиве найти наибольшее значение? http://www.cyberforum.ru/cpp-beginners/thread781640.html
Как в динамическом массиве найти наибольшее значение? srand(time(NULL)); int n = 0; cin >> n; while(i=max) int **a = new int* ; for (int i = 0; i < n; i++) { a = new int ; }
C++ Программа сортировки списка Помогите сделать программу пожалуйста. Программа считывает информацию о студентах (имя, оценка (от одного до десяти) ) и выводит их сначала в порядке, отсортированном по фамилии (в алфавитном порядке, причём символ конца строки идёт раньше по алфавиту, чем любая буква), а затем в порядке, отсортированном по оценке (по убыванию). Все имена разные, состоят из маленьких латинских букв и имеют... http://www.cyberforum.ru/cpp-beginners/thread781632.html
Извлечение данных из стека C++
Доброго времени суток! Помогите разобраться. Изучаю функции и мне не понятно, как извлекаются значения локальных переменных из стека. В стек закладываются локальные переменные по мере их определения. Допустим вначале мы внутри функции объявляем переменную а, потом b. Данные из стека берутся по принципу "последним пришел-первым вышел". А что, если нам вначале нужно использовать переменную a, а...
C++ Проблема с define и typedef
Объясните мне пожалуйста, товарищи... В чем смысл объявлять такие дурацкие дефайны кто это делает? и таких бессмысленных дефайнов, просто кучи!!! Особенно в WinAPI... нельзя ли было просто написать? int wmain(int argc, _TCHAR* argv) и зачем этот *TCHAR?? почему бы не написать int wmain(int argc, wchar_t* argv ? Хоть кто нибудь, объясните зачем это...?
C++ Объясните пожалуйста, как работает код. Указатели http://www.cyberforum.ru/cpp-beginners/thread781572.html
Если не сложно, напишите пожалуйста комметнтарии к каждой строке. Никак не могу разобраться. Программа разделяет строку на слова. #include "stdafx.h" #include <iostream> #include <cstdio> using namespace std; int main() { setlocale (0,"rus"); char str; char token;
C++ Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива Дано число p - количество знаков в двоичном числе Нужно записать все двоичные числа по порядку каждую цифру в отдельный элемент массива и посчитать количество единиц в числе. Пример p=3 Массив А кол-во единиц в числах 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 0 0 1 подробнее

Показать сообщение отдельно
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
08.02.2013, 19:10     Строки: нахождение символов и замена слов
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
А можете тогда на С++ решение написать, пожалуйста?

Добавлено через 38 секунд
Я просто с STL не так хорошо знаком...)

Добавлено через 3 часа 15 минут
Никто не знает решения этого задания на С++?

Добавлено через 3 часа 38 минут
АП.
наверое самый простой способ - это воспользоваться функциями string::find и string::replace
но я простых путей не ищу )
только STL, только хардкор...

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
45
46
47
#include <string>
#include <vector>
#include <iostream>
 
using std::vector;  using std::cout;
using std::string;  using std::endl;
 
vector<string> split(const string& s)
{
    vector<string> ret;
    typedef string::size_type string_size;
    string_size i = 0;
    
    while (i != s.size()) {
        while (i != s.size() && isspace(s[i]))
            ++i;
        string_size j = i;
        while (j != s.size() && !isspace(s[j]))
            ++j;
        if (i != j) {
            ret.push_back(s.substr(i, j - i));
            i = j;
        }
 
    }
    return ret;
}
 
int main()
{
    string mystr = "это слово это а этоуже не слово это";
    string replfrom = "это";
    string replto = "то";
    string result("");
    string space("");
    vector<string> mywords=split(mystr);
    
    for (vector<string>::iterator it = mywords.begin(); it!=mywords.end(); ++it)
    {
        if (*it == replfrom) result += space+replto;
        else result += space + *it; 
        if (it==mywords.begin()) space = " ";
    }
    
    cout << result << endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru