我是靠谱客的博主 专一白昼,最近开发中收集的这篇文章主要介绍经典例题 字符串压缩详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

任务描述

  字符串压缩,某个字符 x 在字符串中连续出现 n(n>1) 次,则将这 n 个字符替换为 "nx" 的形式;否则保持不变,如:Mississippi==>Mi2si2si2pi

输入

  输入 1 个字符串。

输出

   输出压缩后的字符串。

测试说明

测试用例

  输入:    Mississippi   输出:    Mi2si2si2pi

 

#include<stdio.h>
void cyr(char *p);
int main()
{
int i,n;
char p[100];
gets(p);
cyr(p);
puts(p);
return 0;
}
void cyr(char *p)
{
int i,n;//定义变量n用来记录重复字符的个数
char *q=p;//定义指针变量
while(*p!='')//当数组不到最后一位时
{
n=1;//需要注意的是,这里的n=1不能放在while之前,那样的话记录下一字符时无法清零
while(*p==*(p+n))//当当前字符和下一字符相等时
{
n++;
}
}
if(n>=2)
{
*q++=n+'0';//这里是转化为字符型
}
*q++=*(p+n-1);//这里是将字母放在数字后面,如果不加的话就只有重复的次数而没有字符
p=p+n;//跳跃到重复字符截止的地方,开始统计下一个字符
}
*q='';//结束标志
}

 while(*p==*(p+n))
        {
            n++;
        }

 需要注意的是,这里while中*(p+n)的括号不可以省略

最后

以上就是专一白昼为你收集整理的经典例题 字符串压缩详解的全部内容,希望文章能够帮你解决经典例题 字符串压缩详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部