C语言字符串快速压缩算法代码
C语言字符串快速压缩算法代码
发布时间:2016-12-28 来源:查字典编辑
摘要:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规...

通过键盘输入一串小写字母(a~z)组成的字符串。

请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。

压缩规则:

1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。

2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。

示例

输入:“cccddecc” 输出:“3c2de2c”

输入:“adef” 输出:“adef”

输入:“pppppppp” 输出:“8p”

主要说来就是进行字符串处理类的问题,主要涉及到:

1.字符串的输入与输出;

2.基本常用的C语言的字符串的函数使用;

3.对于多重情况的考虑;

4.将数字转换成字符串并进行拼接;

复制代码 代码如下:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main()

{

char str[100] = {''};

char res[100] = {''};

scanf("%s",str);

int length = strlen(str);

int i=0, j=0, k=0;

int count = 0;

do

{

if(i < length && str[i++] == str[j])

count++;

if(str[i] != str[j])

{

if(count <= 1)

res[k++] = str[j];

else

{

if(count > 1)

{

char temp[10] = {''};

itoa(count,temp,10);

strcpy(res+k,temp);

k+=strlen(temp);

res[k++] = str[j];

}

}

j = i;

count = 0;

}

}while(i<length);

res[k] = '';

printf("The result is : %sn",res);

return 0;

}

以上就是本文给大家分享的字符串压缩算法的全部内容了,希望对大家学习C语言能够有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类