从给定字符串中删除所有连续的相同字母的程序
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.
我正在尝试开发一种逻辑,从字符串中删除所有相邻的重复字符。
例如:-
输入: 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.