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

Символам отвечают числа и наоборот - C++

Восстановить пароль Регистрация
 
IamSCORPION
SysOp
 Аватар для IamSCORPION
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 275
27.09.2010, 01:18     Символам отвечают числа и наоборот #1
Здравствуйте. У меня такая задача:
символам отвечают числа, например A=0, B=1, C=2, ..., Z=25. нужно сделать так что б когда есть число то можна было б найти символ, а когда есть символ то можна было б знайти число.
Всем спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 01:41     Символам отвечают числа и наоборот #2
От этого и пляши:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    char ch;
    for(int i = 97;i <= 122;i++){
        ch = i;
        cout << ch << "-" << i << "," ;
    }
    cout << endl;
    cout << endl;
    cout << endl; // забыл как горизонтальную табуляцию делать
    for(int i = 65;i < 91;i++){
        ch = i;
        cout << ch << "-" << i << "," ;
    }
    cout << endl;
 
    system("pause");
}
IamSCORPION
SysOp
 Аватар для IamSCORPION
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 275
27.09.2010, 01:48  [ТС]     Символам отвечают числа и наоборот #3
NikolaWhite
Нет. Мне не это нужно. Может я не правильно выразился.
Мне нужно в программе записать символы и присвоить им определенные числа.
Потом мне необходимо по данному символу найти число и по данному числу найти символ.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.09.2010, 07:24     Символам отвечают числа и наоборот #4
C
1
2
3
4
5
char symbols[] = "abcd";
int numerics[] = { 0, 1, 2, 3 };
 
printf("%c\n", symbols[0]);
printf("%d\n", numerics['d'-'a']);
Icarus
 Аватар для Icarus
6 / 6 / 2
Регистрация: 27.09.2010
Сообщений: 7
27.09.2010, 16:05     Символам отвечают числа и наоборот #5
Работает с латинскими буквами верхнего регистра(нумерация букв по порядку).
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
#include <iostream>
 
using namespace std;
 
union Test
{
    int num;
    char sym;
}ttt;
int main()
{
    int i=0;
    do
    {
        cin>>ttt.num;
        ttt.num=ttt.num+64;
        cout<<" "<<ttt.sym<<"\n";
        i++;
    }while(i<5);
 
    cout<<"\n_____________\n";
    i=0;
    do
    {
        cin>>ttt.sym;
        cout<<" "<<ttt.num-64<<"\n";
        i++;
    }while(i<5);
 
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
27.09.2010, 18:15     Символам отвечают числа и наоборот #6
во, какая галиматья получилась:
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cctype>
 
int main(){
    std::string str;
    std::vector<int> vec;
    bool good;
 
    while ( true ){
        std::cout << "Enter string contains only characters from a to z or empty for exit:" << std::endl;
        std::getline(std::cin, str);
        if ( str.empty() )
            break;
        vec.clear();
        good = true;
        for ( int i = 0; i < str.size(); ++i ){
            if ( isalpha(str[i]) )
                vec.push_back(toupper(str[i]) - 'A');
            else {
                good = false;
                break;
            }
        }
        if ( ! good ){
            std::cerr << "String should contain only characters!" << std::endl;
            continue;
        }
        std::cout << "Codes where 'A' = 0:" << std::endl;
        std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << "\nBack to characters:" << std::endl;
        str.clear();
        for ( int i = 0; i < vec.size(); ++i )
            str += vec[i] + 'A';
        std::cout << str << std::endl;
    }
 
    return 0;
}
но работает
Код
~/cpp/strings $ g++ -o char_numbers char_numbers.cpp 
~/cpp/strings $ ./char_numbers 
Enter string contains only characters from a to z or empty for exit:
blablabla
Codes where 'A' = 0:
1 11 0 1 11 0 1 11 0 
Back to characters:
BLABLABLA
Enter string contains only characters from a to z or empty for exit:
sdfsdf dsf
String should contain only characters!
Enter string contains only characters from a to z or empty for exit:
abcdefg
Codes where 'A' = 0:
0 1 2 3 4 5 6 
Back to characters:
ABCDEFG
Enter string contains only characters from a to z or empty for exit:

~/cpp/strings $
Yandex
Объявления
27.09.2010, 18:15     Символам отвечают числа и наоборот
Ответ Создать тему
Опции темы

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