С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
#1

Рандомное расположение символов в строке - C++

01.04.2014, 18:14. Просмотров 554. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста! Как сделать, чтобы было рандомное расположение символов в строке, которую я ввел до этого сам. Заранее спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 18:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рандомное расположение символов в строке (C++):

Зашифровать строку, поменяв расположение символов на четных и нечетных позициях - C++
Помогите написать программу Написать программу шифрования и дешифрования сообщений. Шифрование выполнить следующим образом: расположить...

В строке символов найти максимальную подпоследовательность символов, являющуюся палиндромом - C++
Народ, помогите пожалуйста. Нужно написать программу, используя динамический массив. Вот условие задачи: В строке символов найти...

В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 - C++
и вот 2 задачка. В заданной строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3. ...

Возможно ли найти расположение подстроки в строке через регулярное выражение std::regex? - C++
Слышал, что C# позволяет с помощью regex определять начало найденной подстроки и её длину. Возможно ли это сделать на C++? Например,...

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. - C++
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама,...

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

12
Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
01.04.2014, 18:15 #2
Можете пример привести?
0
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
01.04.2014, 18:15  [ТС] #3
Да, пожалуй
0
zss
Модератор
Эксперт С++
6590 / 6152 / 2026
Регистрация: 18.12.2011
Сообщений: 16,041
Завершенные тесты: 1
01.04.2014, 18:17 #4
C++
1
2
3
4
5
6
7
8
9
10
char str[100],str2[100];
cin>>str;
int n=strlen(str);
for(int i=0;i<n;i++)
{
   int index=rand()%n;
   str2[i]=str[index];
}
str2[n]=0;
cout<<str2;
1
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
01.04.2014, 18:17  [ТС] #5
Ну вообщем я ввожу строку и хотябы один символ в этой строке менет свое расположение, например:
ввожу: ПриветМир!
Получается: ПрвеитиМр!
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.04.2014, 18:25 #6
zss, так можно некоторые буквы потерять (если использовать обычное присваивание вместо обмена), да и 9 строка совсем ни к чему.
0
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
01.04.2014, 18:30  [ТС] #7
Tulosba, прости, а еще как сделать чтобы символы не повторялись при этом

Добавлено через 13 секунд
zss, прости, а еще как сделать чтобы символы не повторялись при этом
0
zss
Модератор
Эксперт С++
6590 / 6152 / 2026
Регистрация: 18.12.2011
Сообщений: 16,041
Завершенные тесты: 1
01.04.2014, 18:35 #8
Цитата Сообщение от SkorpJuice Посмотреть сообщение
как сделать чтобы символы не повторялись при этом
Например, в исходной строке использованный символ делать нулем и потом проверять
на нуль.
C++
1
2
3
4
5
6
7
8
9
10
for(int i=0;i<n;i++)
{
   int index;
   do
      index=rand()%n;
   while (str[index]==0);
   str2[i]=str[index];
   str[index]=0; 
}
str2[n]=0;// это конец строки, терминальный нуль, не удалять!
Конечно, не самый оптимальный код. По хорошему из исходной строки символ надо выкинуть
и случайное число генерить потом в соответствии с новой длиной строки.
0
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
01.04.2014, 18:39  [ТС] #9
zss, так вроде не работает.... Напиши полностью, как должно выглядеть программа если не сложно, спасибо!
0
zss
Модератор
Эксперт С++
6590 / 6152 / 2026
Регистрация: 18.12.2011
Сообщений: 16,041
Завершенные тесты: 1
01.04.2014, 18:50 #10
Неужели это первая Ваша программа?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char str[256],str2[256];
cin>>str;
int n=strlen(str);
for(int i=0;i<n;i++)
{
   int index;
   do
      index=rand()%n;
   while (str[index]==0);
   str2[i]=str[index];
   str[index]=0; 
}
str2[n]=0;
cout<<str2;
system("pause");
return 0;
}
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.04.2014, 18:51 #11
Стандартная функция для перемешивания: http://www.cplusplus.com/reference/algorithm/random_shuffle/
1
SkorpJuice
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 23
01.04.2014, 18:57  [ТС] #12
zss, А еще сделай плиз так чтобы это в разнобой который, выводился на экран 100 раз дург под ругом, и всегда разные комбинации! Спасибо тебе ! !!!!
0
zss
Модератор
Эксперт С++
6590 / 6152 / 2026
Регистрация: 18.12.2011
Сообщений: 16,041
Завершенные тесты: 1
01.04.2014, 19:09 #13
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
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char str[256],str2[256];
    char str3[256];
    cin>>str3;
    for(int k=0;k<100;k++)
    {
          strcpy(str,str3);
          for(int i=0;i<n;i++)
         {
             int index;
             do
                  index=rand()%n;
             while (str[index]==0);
             str2[i]=str[index];
             str[index]=0; 
         }
         str2[n]=0;
         cout<<str2<<endl;
    }
    system("pause");
    return 0;
}
0
01.04.2014, 19:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 19:09
Привет! Вот еще темы с ответами:

Найти количество символов всех строк файла и количество символов в определенной строке - C++
Здравствуйте! Я хотел бы попросить помощи в решении задачки! У меня не получается найти количество символов всех строчек и количество...

Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить "8029" как это сделать? - C++
Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить &quot;8029&quot; как это сделать? Есть функция...

Проверка символов в строке - C++
Привет! Подскажите, пожалуйста, какой функцией можно проверить массив char на символы? Я имею в виду: мне нужно выбрать из введенных...

Замена символов в строке - C++
Здраствуйте! У меня такая задачка: Дано натуральное число n и символы s1,s2..sn.заменить каждую точку многоточием. Заранее благодарен! ...


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

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

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