从给定字符串中删除所有连续的相同字母的程序

Program to remove all the consecutive same letter from a given string

我正在尝试开发一种逻辑,从字符串中删除所有相邻的重复字符。 例如:-
输入: azxxzy
输出:嗯

这是我用 C 开发的逻辑:

int main()
{
  char str1[10], str2[10];
  int n, i=0, j=0,z=1, k=0;
  scanf("%d", &n);
  for(i=0; i<n; i++){
    gets(str1);
    str2[0]=str1[0];
    for(j=1; str1[j]!='[=10=]'; j++){
        if(str1[j] == str1[j-1])
            continue;
        else
            str2[z] = str1[j];
        z++;
  }

  for(k=0; str2[k]!='[=10=]'; k++)
      printf("%s\n", str2[k]);
  }
  return 0;
}

执行代码时抛出编译错误。可能是什么问题?

printf("%s\n",str2[k]);

str2[k] 是一个 char,但是你告诉 printf 它是一个 char*

但是这个程序仍然不能正常工作——第一次调用 gets() 只会读取在读取初始 int 值后留在输入队列中的回车符-return。而且你永远不会空终止 str2.