Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
xmxm11
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
1

Имеется переменная типа string и некоторый ключ. Необходимо отсортировать строку по возрастанию ключа

20.01.2015, 16:58. Просмотров 992. Ответов 8
Метки нет (Все метки)

Здравствуйте! Имеется переменная типа string и некоторый ключ. Необходимо отсортировать string по возрастанию ключа, количество символов в строке равно длине ключа.
Например: слово Шифр и ключ - 0231. должно получиться Шриф

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2015, 16:58
Ответы с готовыми решениями:

Как преобразовать число типа int в строку типа string без методов-конвертов на C#?
В общем, все что выше написано. Пишу в Visual Studio на C#. Преобразовать без...

Отсортировать каждую строку массива по возрастанию
есть такой массив, который находит макс и мин элемент. нужно отсортировать...

Можно ли строку (типа string) отсортировать с помощью qsort?
Как можно строку a (типа string) отсортировать с помощью qsort, или это не...

Как скопировать строку типа std::string в другую строку такого же типа?
Хотел скопировать строку #include "stdafx.h" #include <iostream> #include...

Необходимо в текстовом файле найти определенную строку, в которой имеется спец.символ и удалить строку
К примеру в файле есть записи: Привет Привет Хороший День Мне нужно, что...

8
sldp
283 / 287 / 112
Регистрация: 29.10.2011
Сообщений: 957
Завершенные тесты: 2
20.01.2015, 17:19 2
очень коряво, но работает)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string text = "шриф";
            string key = "0231";            
 
            string text_res = string.Empty;
 
            char[] key_array = key.ToCharArray();
            Array.Sort(key_array);
 
            for (int i = 0; i < key.Length; i++)
            {
                text_res += text[Convert.ToInt32(key_array[i].ToString())];
            }
 
            Console.WriteLine(text_res);
0
Prog_maker
395 / 353 / 140
Регистрация: 23.01.2011
Сообщений: 985
20.01.2015, 17:21 3
C#
1
2
3
            string s = "Шифр";
            Console.Write(s[0].ToString()+s[2]+s[3]+s[1]); //Шфри
            Console.ReadKey();
0
xmxm11
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
20.01.2015, 17:42  [ТС] 4
sldp,Это просто вернет исходную строку

Добавлено через 1 минуту
Prog_maker, это понятно, но нужна сортировка по ключу
0
nedel
616 / 605 / 358
Регистрация: 09.04.2014
Сообщений: 1,440
Завершенные тесты: 1
20.01.2015, 17:55 5
Лучший ответ Сообщение было отмечено xmxm11 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
string text = "Шифр";
            string key = "0231";
 
            char[] res = new char[text.Length];
            for (int i = 0; i < text.Length; i++)
            {
                int idx = Convert.ToInt32(key[i].ToString());
                res[idx] = text[i];
            }
            string text_res = new string(res);
            Console.WriteLine(text_res);
1
xmxm11
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
20.01.2015, 17:58  [ТС] 6
nedel
Спасибо большое
0
Prog_maker
395 / 353 / 140
Регистрация: 23.01.2011
Сообщений: 985
20.01.2015, 18:03 7
Извиняюсь, но я не совсем понимаю смысл задания, может быть так имелось ввиду
C#
1
2
3
4
5
6
7
8
9
10
            string s = "Шифр";
            Console.WriteLine("Введите ключ:");
            string Out ="";
            string key = Console.ReadLine();
            foreach (char k in key)
            {
                Out += s[Convert.ToInt32(k.ToString())];
            }
            Console.WriteLine(Out);
            Console.ReadKey();
0
maxillion
273 / 183 / 52
Регистрация: 25.12.2012
Сообщений: 616
20.01.2015, 19:52 8
C#
1
2
3
4
char[] text = "Шифр".ToCharArray();
char[] key = "0231".ToCharArray();
Array.Sort(key, text);
Console.WriteLine(new string(text));
0
sldp
283 / 287 / 112
Регистрация: 29.10.2011
Сообщений: 957
Завершенные тесты: 2
20.01.2015, 21:21 9
Это просто вернет исходную строку
xmxm11, по описанию понял, что нужно отсортировать ключ по возрастанию(ключ выходит 0123). тогда просо уберите Array.Sort(key_array); и будет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string text = "шриф";
            string key = "0231";            
 
            string text_res = string.Empty;
 
            char[] key_array = key.ToCharArray();            
 
            for (int i = 0; i < key.Length; i++)
            {
                text_res += text[Convert.ToInt32(key_array[i].ToString())];
            }
 
            Console.WriteLine(text_res);
0
20.01.2015, 21:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2015, 21:21

Переменная типа String
можно ли добавлять в переменную типа string текст или символ, но так чтобы...

переменная типа STRING
можно ли в переменную типа STRING ввести маркер конца строки?может ли он вообще...

Не объявляется переменная типа String
Добрый день. Возникла такая проблема: начал потихоньку разбираться в visual c++...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru