首页 > 编程知识 正文

一般性支出压缩5,字符段分串组合

时间:2023-05-05 05:28:57 阅读:270066 作者:1938

题目描述

本题要求实现一个字符串压缩的简单函数。压缩规则是:如果某个字符x连续出现n(n>1)次,则将这n个字符x替换为nx的形式;否则保持不变。

函数接口定义:

void zip( char *p );
函数zip对p指向的字符串进行压缩操作。

裁判测试程序样例: #include <stdio.h>#define MAXS 20void zip( char *p );void ReadString( char *s ); /* 由裁判实现,略去不表 */int main(){ char s[MAXS]; ReadString(s); zip(s); printf("%sn", s); return 0;}/* 请在这里填写答案 */ 输入样例:

Mississippi

输出样例:

Mi2si2si2pi

源代码 void zip( char *p ){ int i=0,cout=1,j=0,m; int len=strlen(p); //printf("%dn",len); char place[len+100],current; for(m=0;m<len;m++) { current=p[m]; if(p[m]==p[m+1]) //&&p[m+1]!='' cout++; else if(p[m]!=p[m+1]) { if(cout==1) { p[j++]=p[m];cout=1; } else if(cout>1&&cout<=9) { p[j++]=cout+'0'; p[j++]=current; cout=1; } else if(cout>=10) //注意! { int part; part=cout%10; cout=cout/10; p[j++]=cout+'0'; p[j++]=part+'0'; p[j++]=current; cout=1; } } } p[j]='';}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。