0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
1

Сортировка символов строки по алфавиту

16.06.2016, 01:39. Показов 1905. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте Форумчане! Вопрос детский, но никак не могу его решить. Есть 3 чекбокса, событие CheckedChanged для каждого имеет следующий вид:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void CheckBox7_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox checkBox = (CheckBox)sender; // приводим отправителя к элементу типа CheckBox
            if (checkBox.Checked == true)
            {
                result += "B";  // Запись в файл первого ответа
            }
            else
            {
                result= otvet.Replace("B", "");
 
            }      
            
        }
В зависимости от последовательности выбора чекбоксов строка result будет иметь значение "ABC", "CAB","BAC","CA", "AC","BA" и т.д. Нужно, чтобы независимо от последовательности выбора строка result всегда была упорядочена по алфавиту и имела вид "ABC", "AC", "BC", "AB". Кроме того, нужно чтобы при снятии выделения с чекбокса из строки удалялась соответствующая ему буква, например: Было "ABC",стало "AC". Подскажите, как это реализовать? Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2016, 01:39
Ответы с готовыми решениями:

Строки: сортировка символов по алфавиту
Прошу, не оставьте без внимания! Дана строка текста. Известно, что в ней есть один элемент...

Сортировка массива символов по алфавиту
Отсортировать элементы массива символов по алфавиту.

Сортировка символов в строке по алфавиту
не могу найти ошибку.теоретически всё правильно работает.но вот на деле походу зацикливается=(...

Сортировка символов в строке по алфавиту
Добрейшего времени суток всем. Задача следующая: "Вывести буквы, имеющиеся в тексте, в алфавитном...

6
914 / 449 / 226
Регистрация: 02.06.2016
Сообщений: 718
16.06.2016, 01:59 2
little dev, а что есть result? Может лучше его собирать в самом конце?
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
private void publishAnswer_Click(object sender, EventArgs e)
{
    string answer = "";
    if (checkBox1.Checked) answer += "A";
    if (checkBox2.Checked) answer += "B";
    if (checkBox3.Checked) answer += "C";
    if (checkBox4.Checked) answer += "D";
 
    StoreAnswer(answer);
}
0
0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
16.06.2016, 02:06  [ТС] 3
Result просто переменная хранящая строку - ответ. Не понял в вашем примере что такое StoreAnswer и как удалять сиволы соответствующие "снятому" чекбоксу?
0
914 / 449 / 226
Регистрация: 02.06.2016
Сообщений: 718
16.06.2016, 02:11 4
little dev, в моем примере вы не заполняете result до нажатия некой кнопки "Ответить", а после - смотрите какие галки стоят и формируете result (т.е. удалять не нужно ничего).

*Сортировка строки:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
string result = "CAB";
// так:
result = new string(result.OrderBy(c => c).ToArray());
 
// или так:
char[] chars = result.ToArray();
Array.Sort(chars);
result = new string(chars);
1
0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
16.06.2016, 02:21  [ТС] 5
А в случае если пользователь сначала выбрал "АС", а потом (до нажатия кнопки) изменил выбор на "АD", не получится ли в вашем первом примере "ACD"? Ведь, насколько я сейчас (в полудреме) понимаю, обработки события Checked==false в данном примере нет и ранее выбранный вариант не удаляется (т.к. +=). За сортировку спасибо!
0
914 / 449 / 226
Регистрация: 02.06.2016
Сообщений: 718
16.06.2016, 02:36 6
Лучший ответ Сообщение было отмечено little dev как решение

Решение

little dev, в моем примере это не событие ChaeckBox.CheckedChanged (на него не нужно подписываться), а событие нажатия на кнопку (завершение теста, переход к следующему вопросу). В нем вы формируете ответ в виде строки "ABC.." и сохраняете результат куда-то (в моем коде это функция StoreAnswer, значит "Запомнить ответ").

Кликните здесь для просмотра всего текста
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
// Событие происходит по нажатии на кпоку "Следующий вопрос" или "Готово" или еще что-то такое
private void publishAnswerBUTTON_Click(object sender, EventArgs e)
{
    string answer = ""; // пустой овет
 
    // Проверяем первый чекбокс
    if (checkBox1.Checked == true)
    {
        // Если он помечен то строка answer станет равной "A"
        answer += "A";
    }
    else
    {
        // Если не помечен, то ничего не добавляем
        // и строка answer останется пустой
    }
 
    // Теперь, аналогично, добавим к строке answer буквы 
    // B C D (в алфавитном порядке)
    // если нужные чекбоксы помечены
    if (checkBox2.Checked) answer += "B";
    if (checkBox3.Checked) answer += "C";
    if (checkBox4.Checked) answer += "D";
 
    // и сохраним в файл или куда еще
    StoreAnswer(answer);
}
1
0 / 0 / 0
Регистрация: 10.01.2015
Сообщений: 37
16.06.2016, 02:44  [ТС] 7
Спасибо, понял-обрабатывается текущее состояние чекбоксов при нажатии на кнопку.
0
16.06.2016, 02:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 02:44
Помогаю со студенческими работами здесь

Сортировка символов в каждой строке по алфавиту
Программа не работает Код: #include <iostream> #include <fstream> using namespace std; int...

Сортировка строки по алфавиту
Здравствуйте, нужно отсортировать строку по алфавиту. Подскажите, как это реализовать? Есть массив...

Сортировка строки по алфавиту
Написала программу только по устранению лишних пробелов, но не могу сообразить как вывести слова в...

Сортировка слов из строки по алфавиту
Пользователь вводит строку в программу, и ему выводит на экран все слова с новой строчки, в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru