// 문자열에서 a 문자를 b 문자로 변경
// @param str 문자열
// @param cmp 바꾸고자 하는 문자
// @param rep 대체 문자
void ReplaceCharacter(char* str, char cmp, char rep)
{
if (str[0] == '\0')
return;
if (str[0] == cmp)
str[0] = rep;
ReplaceCharacter(str + 1, cmp, rep);
}
// 문자열에서 특정 문자를 제거
// @param str 문자열
// @param cmp 삭제하고자 하는 문자
void RemoveCharacter(char* str, char cmp)
{
if (str[0] == '\0')
return;
// 한 칸 씩 땡김
if (str[0] == cmp)
{
for (int i = 0; str[i] != '\0'; i++)
str[i] = str[i + 1];
RemoveCharacter(str, cmp);
}
else
RemoveCharacter(str + 1, cmp);
}
// 문자열에서 중복된 문자를 제거
// @param str 문자열
void RemoveDuplicates(char* str)
{
// 다른 매개변수 불필요하니 임시로
static char cmp = '\0';
if (str[0] == '\0')
return;
// 한 칸 씩 땡김
if (str[0] == cmp)
{
for (int i = 0; str[i] != '\0'; i++)
str[i] = str[i + 1];
RemoveDuplicates(str);
}
else
{
cmp = str[0];
RemoveDuplicates(str + 1);
}
}
int main()
{
char str[] = "aaaabbfffffffe";
cout << "변경 전 : " << str << endl;
//ReplaceCharacter(str, 'b', 'f');
//RemoveCharacter(str, 'a');
//RemoveDuplicates(str);
cout << "변경 후 : " << str << endl;
}