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

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

Восстановить пароль Регистрация
 
twinkki777
Сообщений: n/a
20.04.2013, 13:56     Морзе в текст #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++
Азбука морзе C++
C++ Азбука Морзе
C++ Курсовая по азбуке Морзе на С++
C++ Азбука морзе
C++ Азбука Морзе
C++ Азбука Морзе
Азбука Морзе С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
Yandex
Объявления
20.04.2013, 16:31     Морзе в текст
Ответ Создать тему
Опции темы

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