Символ перевести в код, подскажите, пожалуйста |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Символ перевести в код, подскажите, пожалуйста |
Triplet |
10.11.2007 12:19
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: 0 |
Задан одномерный массив, каждым элементом которого является строка символов. Если строка состоит из одних латинских букв, то заменить их на соответствующие коды и найти их среднее арифметическое.
Подскажите, пожалуйста, есть ли в С++ аналог паскалевских Ord() и chr(), и можно ли в C++ организовать конструкцию типа if a[i] in ['A'..'Z', 'a'..'z'] then...? |
klem4 |
10.11.2007 12:50
Сообщение
#2
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
в CTYPE.H есть функция
int isalpha(int c); ну а символ перевести в код можно простым приведением char к int (для отображаемых символов) Сообщение отредактировано: klem4 - 10.11.2007 12:54 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Triplet |
10.11.2007 12:56
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: 0 |
|
klem4 |
10.11.2007 13:02
Сообщение
#4
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата именно латинские буквы и заменить их на коды. ch = toupper(ch); -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Triplet |
10.11.2007 13:18
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: 0 |
понятно, спасибо большое за ответ.
мне только не совсем понятно как в массиве строк, каждый символ заменить на код, т.к., если я присваиваю число, оно выводится как символ? Сообщение отредактировано: Triplet - 10.11.2007 13:56 |
Гость |
10.11.2007 13:53
Сообщение
#6
|
Гость |
мне только не совсем понятно как в массиве строк, каждый символ заменить на код, т.к., если я присваиваю число, оно выводится как символ? Если строка состоит из одних латинских букв, то заменить их на соответствующие коды и найти их среднее арифметическое. Здесь был Lapp )) |
Triplet |
10.11.2007 13:56
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: 0 |
даже если и так всё равно хотелось бы узнать ответ на мой вопрос.
лишней эта работа не будет |
Lapp |
10.11.2007 14:08
Сообщение
#8
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
даже если и так всё равно хотелось бы узнать ответ на мой вопрос. лишней эта работа не будет Это не работа. Никакой замены не будет. В машинном представлении символ есть код - он им был, им и останется. А что будет напечатано, зависит от того, как ты выводишь. Так что это просто твое недопонимание представления данных. Повторяю: ничего не надо заменять. Просуммируй коды и пдели на их количество. Твой последний вопрос типа такого: - Кто выше летает - орел или крокодил? - Крокодилы не летают! - Ну, а если бы летали - то кто? Ответ один: крокодилы не летают. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
10.11.2007 15:21
Сообщение
#9
|
Гость |
Да в принципе и переводить-то ничего не надо, этим занимается неявное преобразование типов:
char *s = "ABCD\0"; Что будет в результате? |
Triplet |
10.11.2007 15:58
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 78 Пол: Женский Репутация: 0 |
всё понятно, большое спасибо за ответы
|
Текстовая версия | 27.04.2024 19:31 |