Переделать код, функцию strlen изменить на strcat
#include
#include
using namespace std;
void printUniqueChars(const char* str)
{
int len = strlen(str);
for (int i = 0; i < len; ++i)
{
bool find = false;
for (int j = 0; j < len; ++j)
{
if((str[i] == str[j]) && (j != i))
{
find = true;
break;
}
}
if(!find)
{
cout << str[i] << '\n';
}
}
}
int main()
{
char str[] = "kklmmoddffi";
printUniqueChars(str);
return 0;
}
С++
Ответы
Ответ:
Исправленный код с использованием функции strcat вместо strlen:
#include <iostream>
#include <cstring>
using namespace std;
void printUniqueChars(const char* str)
{
char uniqueStr[strlen(str) + 1]; // выделяем память под уникальные символы
uniqueStr[0] = '\0'; // инициализируем пустой строкой
for (int i = 0; i < strlen(str); ++i)
{
bool find = false;
for (int j = 0; j < strlen(uniqueStr); ++j)
{
if (str[i] == uniqueStr[j])
{
find = true;
break;
}
}
if (!find)
{
char temp[2];
temp[0] = str[i];
temp[1] = '\0';
strcat(uniqueStr, temp); // добавляем уникальный символ в строку
}
}
cout << uniqueStr << endl;
}
int main()
{
char str[] = "kklmmoddffi";
printUniqueChars(str);
return 0;
}
Объяснение: