C語言字符串快速壓縮算法代碼
通過鍵盤輸入一串小寫字母(a~z)組成的字符串。
請編寫一個(gè)字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進(jìn)行壓縮,并輸出壓縮后的字符串。
壓縮規(guī)則:
1、僅壓縮連續(xù)重復(fù)出現(xiàn)的字符。比如字符串”abcbc”由于無連續(xù)重復(fù)字符,壓縮后的字符串還是”abcbc”。
2、壓縮字段的格式為”字符重復(fù)的次數(shù)+字符”。例如:字符串”xxxyyyyyyz”壓縮后就成為”3x6yz”。
示例
輸入:“cccddecc” 輸出:“3c2de2c”
輸入:“adef” 輸出:“adef”
輸入:“pppppppp” 輸出:“8p”
主要說來就是進(jìn)行字符串處理類的問題,主要涉及到:
1.字符串的輸入與輸出;
2.基本常用的C語言的字符串的函數(shù)使用;
3.對于多重情況的考慮;
4.將數(shù)字轉(zhuǎn)換成字符串并進(jìn)行拼接;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[100] = {'\0'};
char res[100] = {'\0'};
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] = {'\0'};
itoa(count,temp,10);
strcpy(res+k,temp);
k+=strlen(temp);
res[k++] = str[j];
}
}
j = i;
count = 0;
}
}while(i<length);
res[k] = '\0';
printf("The result is : %s\n",res);
return 0;
}
以上就是本文給大家分享的字符串壓縮算法的全部內(nèi)容了,希望對大家學(xué)習(xí)C語言能夠有所幫助。
- C語言實(shí)現(xiàn)的猴子吃桃問題算法解決方案
- C語言 選擇排序算法詳解及實(shí)現(xiàn)代碼
- C語言二分查找算法及實(shí)現(xiàn)代碼
- C語言選擇排序算法及實(shí)例代碼
- C語言實(shí)現(xiàn)的猴子偷桃之類算法
- C語言實(shí)現(xiàn)排序算法之歸并排序詳解
- c語言實(shí)現(xiàn)冒泡排序、希爾排序等多種算法示例
- c語言 漢諾塔算法代碼
- C語言實(shí)現(xiàn)斗地主的核心算法
- 馬爾可夫鏈算法(markov算法)的awk、C++、C語言實(shí)現(xiàn)代碼
- 詳解約瑟夫環(huán)問題及其相關(guān)的C語言算法實(shí)現(xiàn)
- C語言實(shí)現(xiàn)的猴子分桃問題算法解決方案
相關(guān)文章
floyd算法實(shí)現(xiàn)思路及實(shí)例代碼
這篇文章主要介紹了floyd算法實(shí)現(xiàn)思路及實(shí)例代碼,有需要的朋友可以參考一下2014-01-01C#使用反射加載多個(gè)程序集的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狢#使用反射加載多個(gè)程序集的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06c++動(dòng)態(tài)內(nèi)存管理與智能指針的相關(guān)知識(shí)點(diǎn)
為了更容易同時(shí)也更安全地使用動(dòng)態(tài)內(nèi)存,新的標(biāo)準(zhǔn)庫提供了兩種智能指針(smart pointer)類型來管理對象,下面這篇文章主要給大家介紹了關(guān)于c++動(dòng)態(tài)內(nèi)存管理與智能指針的相關(guān)知識(shí)點(diǎn),需要的朋友可以參考下2022-03-03關(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明
下面小編就為大家?guī)硪黄P(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05