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

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

Войти
Регистрация
Восстановить пароль
 
OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
#1

Заменить символы в строках... - C++

18.01.2011, 15:20. Просмотров 598. Ответов 5
Метки нет (Все метки)

Заменить наиболее часто встречающийся символ в строке S1, наиболее часто встречающимся символом в строке S2.
Длины строк произвольные, n и m
помогите написать пожалуйста :>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 15:20     Заменить символы в строках...
Посмотрите здесь:

C++ Заменить в строках первое слово на другое
C++ В парных строках матрицы заменить все отрицательные элементы на ноль
C++ как преобразовывать в строках символы в числа
C++ В четных строках матрицы заменить все отрицательные элементы на ноль
C++ Заменить символы в строке.
Заменить символами # символы, стоящие в строках или столбцах, где имеются цифры C++
C++ нужно посчитать опреденные символы в строках
Работа с текстовым файлом (записать в файл строки и символы в строках в обратном порядке) C++
Нужно выяснить, какие символы встречаются в обеих строках, так же и те, которые встречаются только в одной C++
Создать третью строку, которая должна содержать символы, присутствующие одновременно в обеих исходных строках C++
В заданом тексте заменить все символы ":" на символы "-" и наоборот C++
В заданном двухмерном массиве заменить нулями элементы, стоящие в строках или столбцах, где есть нули C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,175
Завершенные тесты: 1
18.01.2011, 16:15     Заменить символы в строках... #2
Чем помочь, что написано, что не работает?
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.01.2011, 16:25     Заменить символы в строках... #3
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
 
int main()
{
    std::string str1;
    std::string str2;
    std::getline(std::cin, str1);
    std::getline(std::cin, str2);
 
    std::vector<int> str1symb;
    std::vector<int> str2symb;
 
    std::for_each(str1.begin(), str1.end(), [str1, &str1symb](char t)
    {
        str1symb.push_back(std::count(str1.begin(), str1.end(), t));
    });
    std::for_each(str2.begin(), str2.end(), [str2, &str2symb](char t)
    {
        str2symb.push_back(std::count(str2.begin(), str2.end(), t));
    });
 
    char fir=str1[std::distance(str1symb.begin(), std::max_element(str1symb.begin(), str1symb.end()))];
    char sec=str2[std::distance(str2symb.begin(), std::max_element(str2symb.begin(), str2symb.end()))];
 
    std::replace(str1.begin(), str1.end(), fir, sec);
 
    std::cout<<str1<<'\n';
    system("pause");
    return 0;
}
igorrr37
1634 / 1262 / 128
Регистрация: 21.12.2010
Сообщений: 1,924
Записей в блоге: 7
18.01.2011, 16:51     Заменить символы в строках... #4
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
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
 
char f(string& s){
    map<char, int>ma;
    for(int i=0;i<s.size();++i){
        if(s[i]!=' ') ma[s[i]]++;
    }
    auto it=max_element(ma.begin(), ma.end(), [](pair<char, int> p, pair<char, int> p1){
                return p.second<p1.second;
            });
    return it->first;
}
int main(){
    string s1, s2;
    cout<<"input s1\n";
    getline(cin, s1);
    cout<<"\ninput s2\n";
    getline(cin, s2);
    char f1=f(s1);
    char f2=f(s2);
    for(int i=0;i<s1.size();++i){
        if(s1[i]==f1)s1[i]=f2;
    }
    cout<<"\n\n"<<s1;
 
}
OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
19.01.2011, 11:06  [ТС]     Заменить символы в строках... #5
ооо спасибо

Добавлено через 14 часов 53 минуты
Компиляция на Линуксе через g++
куча ошибок
C
1
2
3
4
5
6
7
3_2.c: In functionchar f(std::string&):
3_2.c:11: error: ISO C++ forbids declaration of ‘it’ with no type
3_2.c:11: error: expected primary-expression before ‘[’ token
3_2.c:11: error: expected primary-expression before ‘]’ token
3_2.c:11: error: expected primary-expression before ‘p’
3_2.c:11: error: expected primary-expression before ‘p1’
3_2.c:14: error: base operand of ‘->’ is not a pointer
igorrr37
1634 / 1262 / 128
Регистрация: 21.12.2010
Сообщений: 1,924
Записей в блоге: 7
19.01.2011, 12:15     Заменить символы в строках... #6
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
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
 
bool comp(pair<char, int> p, pair<char, int> p1){
    return p.second<p1.second;
}
 
char f(string& s){
    map<char, int>ma;
    for(int i=0;i<s.size();++i){
        if(s[i]!=' ') ma[s[i]]++;
    }
    map<char, int>::iterator it=max_element(ma.begin(), ma.end(), comp);
    return it->first;
}
 
int main(){
    string s1, s2;
    cout<<"input s1\n";
    getline(cin, s1);
    cout<<"\ninput s2\n";
    getline(cin, s2);
    char f1=f(s1);
    char f2=f(s2);
    for(int i=0;i<s1.size();++i){
        if(s1[i]==f1)s1[i]=f2;
    }
    cout<<"\n\n"<<s1;
}
Yandex
Объявления
19.01.2011, 12:15     Заменить символы в строках...
Ответ Создать тему
Опции темы

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