По правилу : есть рандомная строка. Нужно создать массив с символами, которые есть в этой строке. Каждый символ не должен повторятся.
Пример. Фраза "собака ушла". Массив должен выглядеть так : "с, о, б, а, к, ,у, ш, л". (пробел тоже взял как символ) .
Подскажите алгоритм/цикл.
Другие языки программирования и технологии
Как создать массив-выборку?
C++
#include <iostream>
#include <string>
using namespace std;
enum user { INPUT, OUTPUT };
char * arr(size_t);
void message(short);
int main() {
string str;
message(INPUT); getline(cin, str);
size_t buf = str.size() + 1;
char * t = arr(buf);
char * a = arr(buf);
strcpy_s(t, buf, str.c_str());
size_t k = 0, m;
for (size_t n = 0; n < buf; n++) {
for (m = 0; m < n; m++) if (t[m] == t[n]) break;
if (m == n) a[k++] = t[n];
}
message(OUTPUT);
string result = a;
cout << endl << a << endl;
delete[] t;
delete[] a;
cin.get(); cin.get();
return 0;
}
char * arr(size_t size) {
char * ptr = new char [size];
for (size_t n = 0; n < size; n++) ptr[n] = '\0';
return ptr;
}
void message(short command) {
setlocale(LC_CTYPE, "Russian_Russia.1251");
switch (command) {
case INPUT: cout << "Введите строку: "; break;
case OUTPUT: cout << "Результат: "; break;
} setlocale(LC_CTYPE, "English_United States.866");
}
#include <iostream>
#include <string>
using namespace std;
enum user { INPUT, OUTPUT };
char * arr(size_t);
void message(short);
int main() {
string str;
message(INPUT); getline(cin, str);
size_t buf = str.size() + 1;
char * t = arr(buf);
char * a = arr(buf);
strcpy_s(t, buf, str.c_str());
size_t k = 0, m;
for (size_t n = 0; n < buf; n++) {
for (m = 0; m < n; m++) if (t[m] == t[n]) break;
if (m == n) a[k++] = t[n];
}
message(OUTPUT);
string result = a;
cout << endl << a << endl;
delete[] t;
delete[] a;
cin.get(); cin.get();
return 0;
}
char * arr(size_t size) {
char * ptr = new char [size];
for (size_t n = 0; n < size; n++) ptr[n] = '\0';
return ptr;
}
void message(short command) {
setlocale(LC_CTYPE, "Russian_Russia.1251");
switch (command) {
case INPUT: cout << "Введите строку: "; break;
case OUTPUT: cout << "Результат: "; break;
} setlocale(LC_CTYPE, "English_United States.866");
}
сканируешь массив и делаешь выборку
_исходная_строка типа строка
_сим текущий символ типа символ
_символы []
Для и=0 по и=Длина_строки (_исходная_строка) -1 цикл
_сим=ПолучитьПодстроку (и, 1)
_символы [и] =_сим
Конец Цикла
В Си строка и так массив
В Делфи почти как массив - можно обратиться через индекс
В пхп перле питоне тож самое
В СТЛ можно строку преобразовать в указатель на символьный массив или перебрать символы через итератор
_сим текущий символ типа символ
_символы []
Для и=0 по и=Длина_строки (_исходная_строка) -1 цикл
_сим=ПолучитьПодстроку (и, 1)
_символы [и] =_сим
Конец Цикла
В Си строка и так массив
В Делфи почти как массив - можно обратиться через индекс
В пхп перле питоне тож самое
В СТЛ можно строку преобразовать в указатель на символьный массив или перебрать символы через итератор
Похожие вопросы
- С++ Как создать массив кортежей и записать значения
- Как создать массив.
- Как создать массив указателей на числа? (язык Си)
- Как на C++ создать массив типа int из стольких элиментов, что бы значение бралось из перемнно count ?
- С++. Как сделать, чтобы значение массива, созданного в структуре изменялось в другой процедуре?
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- Создать двумерный массив. Pascal
- Си++ Программирование. Создать третий массивов из неповторяющихся повторений на основе 2 исходных
- Создать проект "Формирование одномерного массива"
- [Pascal] Создать очередь в виде кольцевого массива. Скопировать содержимое очереди в стек, который тоже в виде массива.