字符压缩

来源:互联网 发布:lg照片打印机的软件 编辑:程序博客网 时间:2024/04/30 18:21

 2、字符串压缩(30分)

l 问题描述

将给定的字符串,按照规格压缩,输出压缩后的字符串。压缩规格为:相同字符连续,则压缩为“字符+数字个数”,如”aaaa”压缩为”a4”

注:

1、仅是单个字符连续才压缩,如babababa则不能压缩

2、待压缩字符串中不包含数字和转义符

l 要求实现函数

void CompressStr(const char *SrcStr, char *DstStr)

【输入】SrcStr: 待压缩的字符串

【输出】DstStr: 压缩后的字符串

【返回】无

l 示例

输入:SrcStr =”aaacccddef”

输出:DstStr=”a3c3d2ef

 

 

 

下面是我调试通过的程序 这个程序调试了很长时间 说来很惭愧,主要在指针的用法 和一些基本的算法掌握的不好

#include<stdio.h>
void CompressStr(const char *SrcStr,char *DstStr)
{  
 char temp;
 int num=0;
  if(*SrcStr==NULL||*DstStr==NULL)
   return;
 
   while(*SrcStr!='\0')
   {
    num=1;
       temp=*SrcStr;
  for(SrcStr++;*SrcStr;SrcStr++)
  {
      if(temp==(*SrcStr))
   {
    num++;
   }
   else
   {
   break;
   }
  }
  *DstStr=temp;
  DstStr++;
  if(num>1)
  {
     *DstStr=num+'0';
   DstStr++;
  }
 
  }
      *DstStr='\0';

}
void main()
{
 char _SrcStr[30];
 char _DstStr[30];
 gets(_SrcStr);
 puts(_SrcStr);
    CompressStr(_SrcStr,_DstStr);
 printf("%s\n",_DstStr);
 }

 

 

原创粉丝点击