【问题标题】:Program to remove all the consecutive same letter from a given string [closed]从给定字符串中删除所有连续相同字母的程序[关闭]
【发布时间】:2016-04-04 22:00:27
【问题描述】:

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

这是我用 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]!='\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;
}

在执行代码时会引发编译错误。可能是什么问题?

【问题讨论】:

  • 您遇到什么错误?文件顶部的 #include #include 是什么?
  • 这看起来像 C 代码。如果您编译为 C++,请更改标签,但不要为不同的、不相关的语言添加标签。

标签: c algorithm data-structures aptitude


【解决方案1】:
printf("%s\n",str2[k]);

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多