雷火电竞-中国电竞赛事及体育赛事平台

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言字符串原地壓縮實(shí)現(xiàn)方法

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

本文實(shí)例講述了C語(yǔ)言字符串原地壓縮的實(shí)現(xiàn)方法,對(duì)于學(xué)習(xí)字符串操作的算法設(shè)計(jì)有不錯(cuò)的借鑒價(jià)值。分享給大家供大家參考。具體方法如下:

字符串原地壓縮示例: "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;
}

相信本文所述對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。

上一篇:C++設(shè)計(jì)模式之單例模式

欄    目:C語(yǔ)言

下一篇:C++實(shí)現(xiàn)查找中位數(shù)的O(N)算法和Kmin算法

本文標(biāo)題:C語(yǔ)言字符串原地壓縮實(shí)現(xiàn)方法

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3347.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有