LazyFish_OVO
2021-11-26 11:12
采纳率: 0%
浏览 18

求适合刚学c++能理解的代码

在主函数定义一个字符数组,从键盘输入一串未排序的字符存入数组,在被调函数delete_sz中删除一维数组中所有相同的字符,使之保留一个,被调函数返回删除的字符个数,主函数输出删除重复字符后的字符串

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-26 11:37

    只需要将不同的字符从字符数组的开头存放就可以了。每一个字符都先检查是否有重复,有重复就忽略

    #include <iostream>
    using namespace std;
    int delete_sz(char *s)
    {
         int count = 0;
         int i=0,j=0,k=0;
         while(s[i] != 0)
         {
              for(k=0;k<j;k++)
                  if(s[k] == s[i])
                      break;
              if(k==j)
                  s[j++] = s[i];
              else
                  count++;
              i++;
         }
         s[j] = 0;
         return count;
    }
    int main()
    {
          char s[100];
          gets(s);
          int n = delete_sz(s);
          cout<<s<<endl;
          cout<<"被删除字符数量:"<<n;
          return 0;
    }
    
    

    编辑记录

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题