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

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

Войти
Регистрация
Восстановить пароль
 
twinkki777
Сообщений: n/a
#1

Морзе в текст - C++

20.04.2013, 13:56. Просмотров 571. Ответов 1
Метки нет (Все метки)

Добрый день вот такая незадача, надо из морзе кинуть в текст...начинали делать из текста в морзе вроде вышло

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include <locale.h>
 
using namespace std;
 
void main(){
    setlocale(LC_ALL,".1251");
    char *morze[26]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-" , "...-",".--","-..-","-.--","--.."};
    char str[256];
    cout<<"Ввод:";
    cin.getline(str,256);
    cout<<"Вывод:";
    for(int i=0;i<strlen(str);i++)
    {
        if(str[i]!=' ')
            cout<<morze[str[i]-97]<<' ';
        else
            cout<<" ";
    }
    cout<<endl;
}
строки только начали изучать но чтот мне не оч нравится тк, не идет
вот наработка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include <locale.h>
 
using namespace std;
 
void main(){
    setlocale(LC_ALL,".1251");
    char *morze[26]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-" , "...-",".--","-..-","-.--","--.."};
    char *abc[26]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
    char str[256];
    cout<<"Ввод:";
    cin.getline(str,256);
    cout<<"Вывод:";
    for(int i=0;i<strlen(str);i++)
    {
        if(str[i]!=' ')
            cout<<abc[str[i]-97];;//не могу приравнять, точнее понять не могу как
        else
            cout<<" ";
    }
    cout<<endl;
смотрел по форуму др наработки но не оч понравилось тк длинное все чрезмерно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2013, 13:56     Морзе в текст
Посмотрите здесь:

Морзянка. Вводимый с клавиатуры текст перевести в последовательность точек и тире с помощью азбуки Морзе. - C++
Народ, помогите плз решить 2 задачки на С оч надо... 1)Морзянка. Вводимый с клавиатуры текст перевести в последовательность...

Расшифровка Морзе - C++
Делаю шифрование азбукой Морзе. Зашифровка готова, а вот с расшифровкой проблема: процесс зацикливается бесконечное число раз, а найти...

Азбука Морзе, декодирование - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void convert (char); int main(){ char eng; cin.getline...

Азбука Морзе, со звуками - C++
Как создать звук с помощью С++?

Курсовая по азбуке Морзе на С++ - C++
Помогите пожалуйста решить!!!!!нужно написать программу, которая считывает текст из файла, выводит его в этом виде на экран, переводит его...

Азбука Морзе, программа-телеграф - C++
программа-телеграф, которая принимает от пользователя сообщение и выводит его на экран в виде последова-тельности точек и тире. Вывод точек...

Открытие файла. Азбука морзе - C++
Добрый вечер! Хотел обратиться к вам за помощью. Нужно составить программу, которая позволяет текст, содержащийся в файле, воспроизвести...

Написать программу - Азбука Морзе - C++
Написать программу на языке С++ Код Азбуки Морзе, отправьте Код написанной программы на мою почту

Азбука Морзе, нужны комментарии к программе - C++
Доброго времени суток нашел хороший код на с++ по переводу сообщения в азбуку морзе и обратно. Но к сожалению не понимаю как он меняет...

Азбука Морзе, вывод в одну строку - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void convert (char); int main(){ char eng; cin &gt;&gt; eng; ...

Азбука Морзе, кодирование файла в другой файл - C++
Здравствуйте, помогите написать код программы. На именно С++ программа должна считывать текст из файла ( определенного .txt) выводит его...

Азбука Морзе, ошибка при открытии файла - C++
С кодом относительно а. морзе разобралась. осталась проблема с открытием файла#include &lt;fstream&gt; #include &quot;iostream&quot; using namespace...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voroshek
6 / 6 / 1
Регистрация: 22.08.2011
Сообщений: 75
20.04.2013, 16:31     Морзе в текст #2
Привет. Я немного переделал код, используя канонiчные для плюсов string и vector, но ты в принципе можешь сделать с массивами char.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <map>
#include <utility>
#include <vector>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,".1251");
    string morze[26]={".-","-...","-.-.","-..",".","..-.","--.","....","..",\
    ".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",\
    "...-",".--","-..-","-.--","--.."};
    string abc[26]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n",\
    "o", "p","q","r","s","t","u","v","w","x","y","z"};
 
    // контейнер map создаст из morze и abc пары ключ:значение
    map<string, string> zog;
    for (int i=0; i<26; i++) { zog.insert(make_pair(morze[i], abc[i])); }
    string str;
    cout << "Ввод ";
    getline(cin, str, '\n');
 
    // так как символ "а" в морзянке выражается несколькими символами, то я
    // преобразую строку str в кучку строк, состоящих из символов морзянки
    string tmp;
    vector<string> ad_ratio;
    for (string::iterator it=str.begin(); it!=(str.end()+1); ++it)
    {
        if (*it==' ' || it==str.end())
        {
            ad_ratio.push_back(tmp);
            tmp = "";
            continue;
        }
        else { tmp += *it; }
    }
 
    cout << "Вывод ";
    for (vector<string>::iterator it=ad_ratio.begin(); it!=ad_ratio.end();
    ++it)
    {
        cout << zog[*it];
    }
    cout << endl;
    return 0;
}
Ответ Создать тему
Опции темы

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