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

Поставить в строке номер для буквы в соответствии с алфавитом - C++

Восстановить пароль Регистрация
 
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
31.03.2013, 15:42     Поставить в строке номер для буквы в соответствии с алфавитом #1
Всем привет, вот занимаюсь таким делом:
У меня есть слово, допусти "Hello".
в этом слово мне нужно поставить каждой букве номер в соответствии с алфавитом. Написал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main () {
    char title[58]={};
    for(char i='A';i<='z';++i){
        title[i-'A']=i;
    }
    vector<pair<char,int>>dictionary(58);
    for(int i=0;i<58;i++)
    {
        dictionary[i].first=title[i];
        dictionary[i].second=i;
    }
    for(int i=0;i<58;i++)
    {
        cout<<dictionary[i].first<<" "<<dictionary[i].second<<" "<<endl;
    }
    return 0;
}
Теперь вопрос: как сравнивать буквы в алфавите и в строке?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2013, 15:42     Поставить в строке номер для буквы в соответствии с алфавитом
Посмотрите здесь:

C++ Порядковый номер буквы в строке
C++ В заданной строке заменить буквы на их порядковый номер.
В строке заменить все буквы «О» на «Ъ», а буквы «Е» – на случайные символы C++
Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию (работайте с английским алфавитом). C++
C++ Найти порядковый номер слова максимальной длины в строке и номер позиции, с которой оно начинается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
31.03.2013, 16:04     Поставить в строке номер для буквы в соответствии с алфавитом #2
Я бы так реализовал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
#include <vector>
 
int main() 
{
    std::vector<std::pair<char, int>> dictionary;
    std::string str = "ABCDEFGabcdefg";
    for (auto& ch : str) dictionary.push_back(std::make_pair(ch, std::toupper(ch)-65));
    for (auto& p : dictionary) std::cout<<p.first<<" "<<p.second<<"\n";
    
    return 0;
}
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
31.03.2013, 16:11  [ТС]     Поставить в строке номер для буквы в соответствии с алфавитом #3
ругается на 9 и 10 строчку
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
31.03.2013, 16:18     Поставить в строке номер для буквы в соответствии с алфавитом #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int main()
{
    string str="Hello";
    vector< pair<char,unsigned> > vec;
    pair<char,unsigned> p;
    for (size_t i = 0; i!=str.size(); ++i)
        if (isalpha(str[i]))
        {
            p.first = str[i];
            p.second = (unsigned)toupper(str[i])-64;
            vec.push_back(p);
        }
 
    for (vector< pair<char,unsigned> >::iterator it= vec.begin(); it!=vec.end(); it++)
        cout<<it->first<<" "<<it->second<<endl;
    return 0;
}
Добавлено через 27 секунд
Цитата Сообщение от ritmix10 Посмотреть сообщение
ругается на 9 и 10 строчку
yuron_477 использует С++ 11
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
31.03.2013, 16:21  [ТС]     Поставить в строке номер для буквы в соответствии с алфавитом #5
Спасибо!
кстати что функция toupper делает?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
31.03.2013, 16:25     Поставить в строке номер для буквы в соответствии с алфавитом #6
Цитата Сообщение от ritmix10 Посмотреть сообщение
Спасибо!
кстати что функция toupper делает?
фукция toupper получает на входе текстовый символ и возвращает его заглавную версию (большую)
Например, toupper('a') вернет 'A'
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
31.03.2013, 16:34  [ТС]     Поставить в строке номер для буквы в соответствии с алфавитом #7
ммм т.е. ставить номер придется только маленьким или большим буквам?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
31.03.2013, 18:58     Поставить в строке номер для буквы в соответствии с алфавитом #8
ritmix10, ставить номер можно любым буквам, но его определение делать по большим или маленьким
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2013, 19:50     Поставить в строке номер для буквы в соответствии с алфавитом
Еще ссылки по теме:

C++ Какой есть аналог isalpha для работы с русским алфавитом?
Для каждой пары скобок в строке напечатать номер и их позиции в тексте (используя стек) C++
C++ Найти число пробелов в строке и заменить их на номер по порядку в исходной строке

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

Или воспользуйтесь поиском по форуму:
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
31.03.2013, 19:50  [ТС]     Поставить в строке номер для буквы в соответствии с алфавитом #9
ага понял разберусь
Yandex
Объявления
31.03.2013, 19:50     Поставить в строке номер для буквы в соответствии с алфавитом
Ответ Создать тему
Опции темы

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