C语言字符串原地压缩实现方法
2014-09-17 11:15
507 查看
本文实例讲述了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语言:两种方法实现字符串拷贝strcpy
- c语言使用指针实现模拟java/c# string.concat字符串串联方法
- C语言中函数返回字符串的 四种实现方法
- 在区域内绘制宽字符串多行自动换行的c语言实现方法
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 【Java】编写一个方法,实现基本的字符串压缩功能
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- 输入一个长度未知的字符串,用动态分配内存的方法(C语言实现)
- C语言字符串相关方法的实现
- c语言自定义方法实现字符串的7个操作
- c语言:两种方法实现字符串拷贝strcpy
- C语言实现将字符串转换为数字的方法
- python通过zlib实现压缩与解压字符串的方法
- c语言实现把‘0’和‘1’字符串转化为二进制压缩保存成二进制文件
- 如何实现从控制台输入c语言字符串密码,然后用oc的中的NSString方法来验证
- C语言三种方法实现字符串左旋
- 原地压缩字符串的简单实现
- C语言字符串反转实现【采用头指针和尾指针方法完成】