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

时间:2016-04-04 22:00:28

标签: c algorithm data-structures aptitude

在进行一些竞争性编程时,我遇到了一个问题,我应该从字符串中删除所有相邻的重复字符。 例如: -
      输入:azxxzy
      输出:ay

#include <stdio.h>

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]!='\0';j++){
        if(str1[j]==str1[j-1])
            continue;
        else
            str2[z]=str1[j];
        z++;
  }

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

执行代码时会产生编译错误。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

matrix(with(expand.grid(Y=Y,X=X),dnorm(X,Y,1)),length(Y));

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

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