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

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

Войти
Регистрация
Восстановить пароль
 
JokerCD
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 41
#1

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

05.01.2014, 17:14. Просмотров 999. Ответов 8
Метки нет (Все метки)

Написать функцию замены всех русских символов в строке пробелами.
Ввести и обработать две смешанные строки.
Буду признателен за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 17:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию замены всех русских символов в строке пробелами (C++):

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

Написать функцию замены всех цифр в строке пробелами - C++
Помогите пожалуйста написать программу, очень срочно надо Написать функцию замены всех цифр в строке пробелами. Ввести и обработать...

Написать и протестировать функцию для замены символов “:” на “.” в заданной строке - C++
13. Написать и протестировать функцию для замены символов “:” на “.” в заданной строке, начиная с указанной позиции

Создать функцию замены символов в char строке? - C++
У меня вышеприведенный код работает лиш для замены первого встретившегося символа -- далее не идет даже копирования из исходной строки -...

Замена русских символов пробелами - C++
Необходимо написать программу по замене русских символов на пробелы(_) Моя программа запускается, но почему-то вместо пробелов какие-то...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
05.01.2014, 17:31 #2
C++
1
if(i='а-я') i=' ';
как то так наверно
это все в тело цикла добавишь и все
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 17:36 #3
Евгений89,
Цитата Сообщение от Евгений89 Посмотреть сообщение
твоя программа выполняет мистические действия
0
cooller
565 / 533 / 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;
}
0
alsav22
5419 / 4815 / 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();
1
JokerCD
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 41
06.01.2014, 05:21  [ТС] #6
А почему он только половину русских символов заменяет, можно как нибудь все?
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 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;
}
1
Вложения
Тип файла: txt char.txt (3.8 Кб, 14 просмотров)
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.01.2014, 14:02 #8
C++
1
value = static_cast<int>(str[i]);   //приводим символ к его численному эквиваленту (например, символ 'ч' будет равен -25)
Лишнее, символ и так есть число.
1
ninja2
231 / 187 / 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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2014, 16:30
Привет! Вот еще темы с ответами:

Написать функцию, находящую в строке символов симметричное слово. - C++
Помогите плз. Написать функцию, находящую в строке символов симметричное слово.

Написать функцию для подсчета нецифровых символов в строке - C++
Подскажите пожалуйста, как написать функцию для подсчета нецифровых символов в строке. Сам не могу догадаться как учесть все нецифровые...

Написать функцию, которая возвращает количество символов, обозначающих буквы в строке - C++
Написать функцию, которая возвращает количество символов, обозначающих буквы в строке. Заголовок функции: int letterCount (const char *s);...

Написать функцию, которая возвращает слово в строке, которое короче всех - C++
Задание: Написать функцию, которая возвращает слово в строке, которое короче всех. Заголовок функции: char * mostlyWord (const char * s );...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2014, 16:30
Ответ Создать тему
Опции темы

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