C语言字符串原地压缩实现方法

  • 更新时间:2022-11-03 09:39:14
  • 编辑:文鹏翼

本文实例讲述了C语言字符串原地压缩的实现方法,对于学习字符串操作的算法设计有不错的借鉴价值。分享给大家供大家参考。具体方法如下:

字符串原地压缩示例: "eeeeeaaaff"压缩为"e5a3f2"

具体功能代码如下:

/*  
* Copyright (c) 2011 alexingcool. All Rights Reserved.  
*/
#include <iostream>
#include <iterator>
#include <algorithm>

using namespace std;

char array[] = "eeeeeaaaff";
char array2[] = "geeeeeaaaffg";
const int size = sizeof array / sizeof *array;
const int size2 = sizeof array2 / sizeof *array2;

void compression(char *array, int size)
{
 int i = 0, j = 0;
 int count = 0;

 while(j < size) {
 count = 0;
 array[i] = array[j];

 while(array[j] == array[i]) {
  count++;
  j++;
 }
 if(count == 1) {
  i++;
 }
 else {
  array[++i] = '0' + count;
  ++i;
 }
 }
 array[i] = 0; 
}

void main()
{
 compression(array, size);
 cout << array << endl;
 compression(array2, size2);
 cout << array2 << endl;
}

相信本文所述对大家C程序算法设计的学习有一定的借鉴价值。

相关教程

  • C语言链表实现销售管理系统

    C语言链表实现销售管理系统

    给网友朋友们带来一篇关于C语言的教程,这篇文章主要为大家详细介绍了C语言链表实现销售管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2022-06-26

  • C语言原码、反码、补码和移码知识点总结

    这篇文章主要介绍了C语言基础 原码、反码、补码和移码详解的相关资料,需要的朋友可以参考下

    发布时间:2021-06-02

  • VScode上配置 c语言环境的图文教程

    这篇文章主要介绍了配置VScode c语言环境,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    发布时间:2022-04-16

  • C语言中for循环问题(一个小坑需注意)

    C语言中for循环问题(一个小坑需注意)

    给大家整理了关于C语言的教程,这篇文章主要给大家介绍了关于C语言中for循环问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    发布时间:2022-09-14

  • c语言static关键字用法详解

    c语言static关键字用法详解

    给大家整理一篇关于c语言的教程,大家好,本篇文章主要讲的是c语言static关键字用法详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

    发布时间:2022-10-19

  • 常用排序算法的C语言版实现示例整理

    为网友们分享了关于C语言的教程,这篇文章主要介绍了常用排序算法的C语言版实现示例整理,包括快速排序及冒泡排序等,基本上都给出了时间复杂度,需要的朋友可以参考下

    发布时间:2022-10-17

  • C语言文件读写操作介绍与简单示例

    给网友们整理关于C语言的教程,这篇文章主要给大家介绍了关于C语言文件读写操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    发布时间:2022-10-21

用户留言