它这个结果具体是该怎么正确输出的??求解

问题遇到的现象和发生背景

刚刚学习了函数,在练手。。

用代码块功能插入代码,请勿粘贴截图

c

#include
char del_samechar(char str[ ]);

main() {
char str[100];

gets(str);

del_samechar(str);

puts(str);

}

char del_samechar(char str[ ]) {
int n, k = 0;
char b[100];
{
for (n = 0; str[n] != '\n'; n++)
if (str[n] != str[n + 1]||str[n+1]!='\n')
str[k] = str[n];
k++;

}

}

运行结果及报错内容
输入:room
结果输出了一个:刼om?!

我的解答思路和尝试过的方法

尝试用另一个字符串数组b去替换去除重复字母后的str[],但反而没有结果输出。

我想要达到的结果

对每个字符串做如下处理:删除字符串所有连续相同的字符,然后输出该字符串。