3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
1

Работа со строками

08.06.2015, 18:05. Показов 1407. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание "Есть строка, состоящая из слов, разделенных любым количеством пробелов. При введении русского текста, пользователь забыл переключить раскладку клавиатуры. Напишите программу, которая превратит такую строку в русский текст."

Знаю, что нужно создавать два массива: один с русскими буквами, а второй с английскими, а что делать дальше не могу понять( помогите плиз(
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2015, 18:05
Ответы с готовыми решениями:

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

5
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,882
08.06.2015, 19:19 2
Лучший ответ Сообщение было отмечено Svetlana_Lavrin как решение

Решение

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
#include <iostream>   
#include <string>     
#include <cstring>
#include <windows.h>
using namespace std;
 
//ФУНКЦИЯ КОРРЕКТИРОВКИ СТРОКИ
 void correct(string &S){
     string Ru="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";  //русские символы, дописывай
     string En="F<DULT~:PBQRKVYJGHCNEA{WXIO}SM\">Z";  //русские символы при перепутанной раскладке
    for (unsigned i=0;i<S.length();i++){
            int pos=En.find(S[i]);
        if (pos!=En.npos){
            S[i]=Ru[pos];
        };
    }
}
 
int main ()
{
    setlocale(LC_ALL,"");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
   string S;
 
   getline(cin,S);   //Чтобы с маленькими было, дописывай функцию корректировки, сейчас только с большими
   correct(S);  //Скорректировали
 
   cout<<S<<"\n";
}
1
22 / 22 / 28
Регистрация: 22.05.2015
Сообщений: 55
08.06.2015, 19:31 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
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char *str = new char[50];
    char ENGLISH_LETTERS[] = "qwertyuiop[]asdfghjkl;'\zxcvbnm,./";
    char RUSSIAN_LETTERS[] = "йцукенгшщзхъфывапролджэ\ячсмитьбю.";
    cout << "Введите строку: ";
    gets(str);
    cout << "Ваша строка: ";
    puts(str);
    for(int i=0;i<50;i++)
    {
        for(int j=0;j<sizeof(ENGLISH_LETTERS);j++)
        {
            if(str[i] == ENGLISH_LETTERS[j])
                str[i] = RUSSIAN_LETTERS[j];
        }
    }
    cout << "Ваша переведенная строка: ";
    puts(str);
    system("pause");
}
0
3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
08.06.2015, 19:47  [ТС] 4
Цитата Сообщение от daslex Посмотреть сообщение
#include <iostream> *
#include <string> * *
#include <cstring>
#include <windows.h>
using namespace std;
//ФУНКЦИЯ КОРРЕКТИРОВКИ СТРОКИ
*void correct(string &S){
* * *string Ru="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; *//русские символы, дописывай
* * *string En="F<DULT~:PBQRKVYJGHCNEA{WXIO}SM\">Z"; *//русские символы при перепутанной раскладке
* * for (unsigned i=0;i<S.length();i++){
* * * * * * int pos=En.find(S[i]);
* * * * if (pos!=En.npos){
* * * * * * S[i]=Ru[pos];
* * * * };
* * }
}
int main ()
{
* * setlocale(LC_ALL,"");
* * SetConsoleCP(1251);
* * SetConsoleOutputCP(1251);
* *string S;
getline(cin,S); * //Чтобы с маленькими было, дописывай функцию корректировки, сейчас только с большими
* *correct(S); *//Скорректировали
cout<<S<<"\n";
}
работает все хорошо, но не изменяет знаки...они так знаками и остаются
0
22 / 22 / 28
Регистрация: 22.05.2015
Сообщений: 55
08.06.2015, 20:12 5
Цитата Сообщение от Svetlana_Lavrin Посмотреть сообщение
работает все хорошо, но не изменяет знаки...они так знаками и остаются
Не меняет знаки, потому что их нету в строках. Вам нужно всего лишь дополнить массив (если речь идет о моем коде) или дополнить строки (если речь идет о коде daslex).
1
3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
08.06.2015, 20:14  [ТС] 6
Вижу уже, спасибо большое)
0
08.06.2015, 20:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2015, 20:14
Помогаю со студенческими работами здесь

Работа со строками
Строки - мое слабое место, поэтому прошу помочь... Задан массив, который содержит в себе сведения...

Работа со строками
Уважаемые специалисты и любители 1С! Подскажите,пожалуйста,нужно написать код процедуры которая...

Работа со строками.
Здравствуйте, уважаемые программисты всея форума! Доброго вам времени суток! Возникло несколько...

Работа со строками
Народ, нужна помощь... Срочно... Желательно в Eclipse. Напишите программу, определяющую число слов...

Работа со строками
Допустим, у нас есть 4 слова, вводим их в форму, в которой 2 тестовых поля и одна кнопка. В одно...

Работа со строками
Помогите Написать программу, которая будет дублировать каждую первую букву слова в строке...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru