C/C++

Сделать через функцию strcat c++

Из заданной символьной строки выбрать символы, встречающиеся только один раз, в порядке их расположения.
Снежанна Денисовна, спросите у того кто задал задание, нахрена здесь strcat, который служит для склеивания двух строк? Даже сделать через "задницу" и то было бы логичнее и понятнее. Именно так виндовс писали.
Данил Бычков
Данил Бычков
51 416
Лучший ответ
Код решения:

```cpp
#include <iostream>
#include <cstring>

void selectUniqueChars(const char* str, char* result) {
int len = strlen(str);
int freq[256] = {0}; // частотный массив для символов
for (int i = 0; i < len; i++) {
freq[str[i]]++;
}
int j = 0;
for (int i = 0; i < len; i++) {
if (freq[str[i]] == 1) {
result[j++] = str[i];
}
}
result[j] = '\0';
}

int main() {
char str[] = "abcaabbccd";
char result[256];
selectUniqueChars(str, result);
std::cout << result << std::endl;
return 0;
}
```

Объявляем функцию `selectUniqueChars`, которая принимает два параметра: исходную символьную строку `str` и массив результата `result`. Внутри функции мы создаем частотный массив `freq` для символов исходной строки. Затем проходим по этой строке снова и добавляем в массив результата только те символы, которые встречаются только один раз в исходной строке.

В главной функции мы объявляем исходную строку и массив для результата и передаем их в функцию `selectUniqueChars`. Затем выводим результат.

Пример вывода:

```
bcdb
```
AR
Abdulhamid Ramazonov
14 368
Вот я другого человека написал код.

 #include  
#include

using namespace std;

char * printUniqueChars(const char* str, unsigned len)
{

// int len = strlen(str);
char * tmp = new char[len + 1];
tmp[0] = '\0'; // формируем строку
char buf[2]; // буфер
buf[1] = '\0'; // граница буфера

// for (int i = 0; i < len; ++i)
for (int i = 0; i < len; i++) // просто я так привык
{
bool find = false;

// for (int j = 0; j < len; ++j)
for (int j = 0; j < len; j++)
{
if((str[i] == str[j]) && (j != i))
{
find = true;
break;
}
}

if(!find)
{
// cout
Марина Геннадиевна Если будут вопросы, отвечу после первого периода.
Марина Геннадиевна Точнее, я переделал его код на этот.
Vladimir Kononov можно его сделать как то проще? но с использованием strcat и функции в коде без динамического массива?