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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
^Tecktonik_KiLLeR
1160 / 442 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
#1

Из русских букв в английские - C++

23.12.2009, 21:17. Просмотров 2042. Ответов 8
Метки нет (Все метки)

написал код,который если написать руддщ запишет как Hello
я хочу каким то невероятным образом выполнить это...был алгоритм типа этого
C++
1
if(char)i=='a')cout<<"F";
но я сам запутался...помогите...нода чтобы по ошибке если ввели ангд слово на русском перевел на норм слова...пример
Руддщ Цщкдв
результат
Hello World
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2009, 21:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из русских букв в английские (C++):

Ввод русских букв - C++
Не могу понять почему при вводе русских символом программа начинает ругаться. Можно ли как-нибудь решить эту проблему? #include...

Распознавание русских букв консолью - C++
Доброго времени суток, форумчане! У меня такая проблема. Я бы хотел написать программу с паролем, которая при вводе верного продолжает...

Сравнение русских букв с их кодами - C++
Всем доброго времени суток. Имеется проблема ввода русского языка в консоле(!), при выполнении программы. Суть задания: пользователь...

Номера русских букв в ASCII - C++
Почему такой код setlocale (LC_ALL, &quot;rus&quot; ); cout&lt;&lt;static_cast&lt;char&gt;(231)&lt;&lt;endl; cout&lt;&lt;static_cast&lt;int&gt;('з')&lt;&lt;endl; char...

Кодировка русских букв в посте - C++
Доброго времени суток. Пользуюсь vk api, требуется опубликовать обычный пост с русскими буквами.. (URL_READY_WALL, START_POST_5 и...

Количество русских букв в строке - C++
Написать программу, которая бы подсчитывала сколько в веденной строке русских букв. Я написала программу, в которой подсчитывается...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
24.12.2009, 00:14 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    const string rus = "йцукенгшщзхъфывапролджэячсмитьбю";
    const string eng = "qwertyuiop[]asdfghjkl;'zxcvbnm,.";
    string s;
    getline(cin, s);
    for (size_t i = 0; i < s.length(); i++)
    {
        size_t pos = rus.find(s[i]);
        if (pos != string::npos)
          s[i] = eng[pos];
    }
    cout << s;
}
1
^Tecktonik_KiLLeR
1160 / 442 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
24.12.2009, 11:57  [ТС] #3
Somebody, спасибо,а как написать условие,что если ввели русские буквы переделал в англ
0
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
24.12.2009, 13:34 #4
C++
1
2
3
4
string s;
cin >> s;
for (int i=0;i<s.length();i++)
if ((int)s[i] > (int)'z') {/*русская буква - надо перекодировать её, или сообщить о ошибке*/}
1
^Tecktonik_KiLLeR
1160 / 442 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
24.12.2009, 19:56  [ТС] #5
Aye Aye, aaa ясно

Добавлено через 3 часа 46 минут
Somebody, а как наоборот?

Добавлено через 3 минуты
i<s.length();
тут более верно не будет ли
C++
1
i<=s.length();
Добавлено через 11 минут
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
string rusToEngl(string s){
    const string rus = "йцукенгшщзхъфывапролджэячсмитьбю";
    const string eng = "qwertyuiop[]asdfghjkl;'zxcvbnm,.";
  for (size_t i = 0; i < s.length(); i++)
    {
        size_t pos = rus.find(s[i]);
        if (pos != string::npos)
          s[i] = eng[pos];
    }  
    return (s);
} 
int main()
{
SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 string a;
 getline(cin,a);
 for(int i=0;i<a.length();i++)
 {
     if((int)a[i]>(int)'z'){ a=rusToEngl(a); }
cout<<a[i]<<endl;
 }
  system("pause"); 
  return 0;
}
это мой переделанный код...весь код засунул в функцию..в меине введется строка,если там есть какая нить русская буква,то перейти в функцию чтобы переделать эту букву...ввожу РУДДЩ выводит
Р
У
Д
Д
Щ

вместо
H
E
L
L
O
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
24.12.2009, 21:36 #6
Цитата Сообщение от МедведЪ Посмотреть сообщение
тут более верно не будет ли
i<=s.length();
Не, нумерация с нуля же.
Цитата Сообщение от МедведЪ Посмотреть сообщение
Somebody, а как наоборот?
Цитата Сообщение от МедведЪ Посмотреть сообщение
это мой переделанный код...весь код засунул в функцию..в меине введется строка,если там есть какая нить русская буква,то перейти в функцию чтобы переделать эту букву...ввожу РУДДЩ выводит
В общем, ты ни фига код не понял, да?
Функция же преобразует строку - тогда что за for и что за if в main'е? Надо бы просто a=rusToEngl(a). Чтобы наоборот, логично было бы предположить, что надо наоборот искать символ в eng и заменять соответствующим из rus.
1
^Tecktonik_KiLLeR
1160 / 442 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
24.12.2009, 22:35  [ТС] #7
Somebody, добавил символы
C++
1
2
const string rus = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,йцукенгшщзхъфывапролджэячсмитьбю.ё!\"№;%:?*()_+";
    const string eng = "QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM,./qwertyuiop[]asdfghjkl;'zxcvbnm,.~!@#$%^&*()_+";
в конце первого переменного записано \",то етсь это просто "...когда я ввожу РУДДЩ""" он должен выводить HELLO@@@ a выводит HELLO###,то есть на символ вперед,как исправить
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
25.12.2009, 20:04 #8
Цитата Сообщение от МедведЪ Посмотреть сообщение
должен выводить HELLO@@@ a выводит HELLO###
rus и eng в приведённом коде вообще разной длины, так что...
0
^Tecktonik_KiLLeR
1160 / 442 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
25.12.2009, 21:01  [ТС] #9
Somebody, ё,да я понял что разой длины потому что \" считается как 2
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2009, 21:01
Привет! Вот еще темы с ответами:

Разделение русских и английских букв - C++
Написать функцию разделения русских и английских букв в отдельные строки. #include &lt;iostream&gt; #include &lt;cstring&gt; void enru(char...

Подсчет русских букв в строке - C++
Всем привет :) Есть такая задача: Ввести с клавиатуры строку. Определить, сколько в этой строке гласных, согласных, строчных и прописных...

Запись русских букв в массив! - C++
Приветствую Вас друзья! Кто знает как грамотно передать с клавиатуры русские буквы в массив типа char, когда заношу на экране выходит...

Кодировка русских букв в MacOS - C++
здравствуйте, пишу программу на си под макосью, в качестве компилятора использую Xcode, возникает проблема с кодировкой русских букв. ...


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

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

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