在进行一些竞争性编程时,我遇到了一个问题,我应该从字符串中删除所有相邻的重复字符。
例如: -
输入: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;
}
执行代码时会产生编译错误。可能是什么问题?
答案 0 :(得分:2)
matrix(with(expand.grid(Y=Y,X=X),dnorm(X,Y,1)),length(Y));
str2 [k]是一个char,但是你告诉printf它是一个char *
但是这个程序仍然无法正常工作 - 第一次调用gets()只会读取读取初始int值后留在输入队列中的回车符。并且你永远不会终止str2。