0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
|
1 | |
Сортировка символов в строке23.02.2013, 00:39. Показов 15490. Ответов 30
Метки нет (Все метки)
Помогите пожалуйста составить понятную для начинающего программиста программу.
Выполнить сортировку символов в строке. Порядок возрастания "весов" символов задать таблицей вида char ORD[] = "АаБбВвГгДдЕе1234567890"; Символы, не попавшие в таблицу, размещаются в конце отсортированной строки.
0
|
23.02.2013, 00:39 | |
Ответы с готовыми решениями:
30
Сортировка символов в строке по алфавиту Сортировка символов в строке, виртуальные функции Сортировка символов в каждой строке по алфавиту В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом |
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||||||
23.02.2013, 05:44 | 2 | |||||
Пытался отсортировать при помощи алгоритма std::sort, но не получилось написать предикат. Если у кого-то получится, не плохо бы было взглянуть на код.
0
|
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
|
||||||
23.02.2013, 08:23 | 3 | |||||
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
|
23.02.2013, 16:41 [ТС] | 4 |
Спасибо но не могли бы составить прогу без string ов и size! (мы их просто не проходили и соответственно я не понимаю их)
желательно используя using namespace std; вместо того чтобы каждый раз писать std:так привычнее) буду благодарен если сможете помощь ! Добавлено через 3 часа 8 минут unit7, не поможете доделать код? Код
#include<iostream> #include<iomanip> using namespace std; int main() { setlocale(0,""); int n=8; int i,t; char *ss1=new char[n]; strcpy(ss1,""); ss1="Привет мир"; cout<<"Исходная строка: "<<ss1<<endl; cout<<"Конечный вариант: "; char ord[]="АаБбВвГгДдЕе1234567890"; for (i=0,t=0; ord[i]!='\0', t<strlen(ss1); i++,t++) { for(int i=0; i<=23; i++) { if (ss1[t]==ord[i]) cout<<ss1[t]; } } cout<<endl; return 0; } Добавлено через 1 час 4 минуты
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||||||
23.02.2013, 16:44 | 5 | |||||
Не советую вам работать с русскими символами, может быть такая ситуация, что на одной машине программа будет работать, а на другой нет(.
Вот версия со всем подключённым пространстом имён std (что не есть корректно), и с массивом символов:
0
|
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
|
|||||||||||
23.02.2013, 16:50 | 6 | ||||||||||
Конечно, тут же ясно написано выводить только те, которые есть в ord:
Вот вам баблом Должно работать )
xtorne21st, все компилируется, что вы наговариваете http://ideone.com/pWr9zw
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
||||||
23.02.2013, 16:54 [ТС] | 7 | |||||
[QUOTE=xtorne21st;4171038]
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||||||
23.02.2013, 16:57 | 8 | |||||
Вот вариант с "широкими" символами (только не удивляйтесь если увас работало, а где-то в другом месте нет)
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
|
23.02.2013, 17:00 [ТС] | 9 |
То есть вы хотите сказать что мой код нельзя довести до логического завершения?
Если это действительно так будьте добры объясните пожалуйста свой код?! Добавлено через 3 минуты Простите я не понял что за широкие слова Товарищи, вы мне скажите этот код можно доделать ? Код
#include<iostream> #include<iomanip> using namespace std; int main() { setlocale(0,""); int n=8; int i,t; char *ss1=new char[n]; strcpy(ss1,""); ss1="Привет мир"; cout<<"Исходная строка: "<<ss1<<endl; cout<<"Конечный вариант: "; char ord[]="АаБбВвГгДдЕе1234567890"; for (i=0,t=0; ord[i]!='\0', t<strlen(ss1); i++,t++) { for(int i=0; i<=23; i++) { if (ss1[t]==ord[i]) cout<<ss1[t]; } } cout<<endl; return 0; }
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||||||
23.02.2013, 17:00 | 10 | |||||
С какими вы ключами компилируете? у меня g++ 4.6 вот что выводит:
0
|
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
|
|
23.02.2013, 17:01 | 11 |
Ну тот цикл мне не понять А мой код - обычный тупой BubbleSort, почитайте на вики.
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
|
23.02.2013, 17:02 | 12 |
а уже нашёл с какими : -std=c++0x
0
|
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
|
|
23.02.2013, 17:03 | 13 |
xtorne21st, попробуйте -std=c++0x
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
|
23.02.2013, 17:06 | 14 |
Ни слова а символы wchar_t имеет размер 2-4 байта, в то время как char только один байт. В char можно поместить только ascii тобишь латынь и некоторые вспомогающие-управляющие символы(типа !"#$^&). А в широкий двубайтовый(или четырёх байтовый) можно запихнуть весь unicode: русский, китайский т.д.
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
||||||
23.02.2013, 17:08 [ТС] | 15 | |||||
Товарищи, вы мне скажите этот код можно доделать ?
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
|
23.02.2013, 17:08 | 16 |
0
|
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
|
||||||
23.02.2013, 17:10 | 17 | |||||
А вы скажите что вот здесь происходит?
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
|
23.02.2013, 17:12 [ТС] | 18 |
unit7, там выводит только те символы которые встречались в ord.Пробовал выводить все остальные символы в конце не получилось чужь какую-то выводит!
0
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
|||||||||||
23.02.2013, 17:14 | 19 | ||||||||||
Этот код доделать можно, переделав его полностью). Ещё раз прочитайте что я вам писал.
Тут
Посмотрите мой код для широких символов - он рабочий. Добавлено через 1 минуту Сортировка символов в строке
0
|
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 22
|
|||||||||||
23.02.2013, 20:09 [ТС] | 20 | ||||||||||
unit7,
Здесь вы пытаетесь запихнуть двубайтовые символы в однобайтовый char... Тут
А если использовать unsigned int? Добавлено через 12 минут unit7, кстати ваш код действительно не компилируется! Добавлено через 2 часа 31 минуту xtorne21st, я тут посмотрел ваш код и убедился что он работает не правильно!Вы его сами проверяли?
0
|
23.02.2013, 20:09 | |
23.02.2013, 20:09 | |
Помогаю со студенческими работами здесь
20
Сортировка Шелла и пирамидальная сортировка для символов В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |