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

Написать функцию замены всех русских символов в строке пробелами - C++

Восстановить пароль Регистрация
 
JokerCD
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 41
05.01.2014, 17:14     Написать функцию замены всех русских символов в строке пробелами #1
Написать функцию замены всех русских символов в строке пробелами.
Ввести и обработать две смешанные строки.
Буду признателен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 17:14     Написать функцию замены всех русских символов в строке пробелами
Посмотрите здесь:

Написать и протестировать функцию для замены символов “:” на “.” в заданной строке C++
Написать функцию, находящую в строке символов симметричное слово. C++
C++ Написать функцию, находящую в строке символов симметричное слово.
Написать функцию замены всех цифр в строке пробелами C++
C++ Замена русских символов пробелами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
05.01.2014, 17:31     Написать функцию замены всех русских символов в строке пробелами #2
C++
1
if(i='а-я') i=' ';
как то так наверно
это все в тело цикла добавишь и все
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 17:36     Написать функцию замены всех русских символов в строке пробелами #3
Евгений89,
Цитата Сообщение от Евгений89 Посмотреть сообщение
твоя программа выполняет мистические действия
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
05.01.2014, 17:49     Написать функцию замены всех русских символов в строке пробелами #4
JokerCD что то типа этого,
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
#include "stdafx.h"
#include<iostream>
#include<string>
#include<windows.h>
 
int main()
{
    std::string str;
    std::cin >> str;
    int a = strlen(str.c_str());
 
    for (int i = 0; i < a; i++)
    {
        for (unsigned int j = 224; j < 256; j++)
        {
            if (static_cast<unsigned char>(str[i]) == j)
                str[i] = ' ';
        }
 
    }
    std::cout << str;
 
    system("pause");
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 18:17     Написать функцию замены всех русских символов в строке пробелами #5
Цитата Сообщение от cooller_94 Посмотреть сообщение
std::string str;
std::cin >> str;
int a = strlen(str.c_str());
C++
1
2
3
std::string str;
std::getline(std::cin, str);
int a = str.size();
JokerCD
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 41
06.01.2014, 05:21  [ТС]     Написать функцию замены всех русских символов в строке пробелами #6
А почему он только половину русских символов заменяет, можно как нибудь все?
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
06.01.2014, 12:45     Написать функцию замены всех русских символов в строке пробелами #7
Цитата Сообщение от JokerCD Посмотреть сообщение
А почему он только половину русских символов заменяет, можно как нибудь все?
JokerCD, ну нет здесь вроде ничего сложного)
Вводите строку и смотрите, попадает ли символ в диапазон значений русских букв. Таблица соответствия в прикрепленном файле.

Попробуйте вот так:

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
#include<iostream>
#include<string>        //для работы со строками
#include<windows.h>
using namespace std;
 
int main()
{
    cout << "Enter string:" << endl;
 
    string str;
    getline(cin, str);
 
    int value;              //здесь будет храниться числовое значение символа
 
    //русские буквы лежат в интервале от -128 до -81 и от -32 до -15 
 
    for(size_t i = 0; i < str.size(); ++i)      
    {
        value = static_cast<int>(str[i]);   //приводим символ к его численному эквиваленту (например, символ 'ч' будет равен -25)
 
        if( ( (value >= -128) && (value <= -81) ) || ( (value >= -32) && (value <= -15) ) )     //и проверяем, русская ли буква
            str[i] = ' ';   //заменяем на пробел
    }
 
    cout << endl;
 
    cout << "Converted string:" << endl;
 
    cout << str << endl;
 
    system("pause");
 
    return 0;
}
Вложения
Тип файла: txt char.txt (3.8 Кб, 13 просмотров)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 14:02     Написать функцию замены всех русских символов в строке пробелами #8
C++
1
value = static_cast<int>(str[i]);   //приводим символ к его численному эквиваленту (например, символ 'ч' будет равен -25)
Лишнее, символ и так есть число.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 16:30     Написать функцию замены всех русских символов в строке пробелами
Еще ссылки по теме:

Узнать, сколько символов в строке (вместе с пробелами) C++
C++ Проверка русских символов в строке
Написать функцию для определения количества цифровых символов в заданной текстовой строке C++

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

Или воспользуйтесь поиском по форуму:
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
06.01.2014, 16:30     Написать функцию замены всех русских символов в строке пробелами #9
А можно с помощью РВ заменить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <regex>
using namespace::std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    wstring s=L"hellow world гаспада da da da";
    wcout <<"s= "<<s<<endl;
    s=regex_replace(s,wregex(L"[а-я,А-Я, ]+"),wstring(L" "));
    wcout <<"s= "<<s<<endl;
 
    return 0;
}
Yandex
Объявления
06.01.2014, 16:30     Написать функцию замены всех русских символов в строке пробелами
Ответ Создать тему
Опции темы

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