最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言字符串快速壓縮算法代碼

 更新時間:2015年03月10日 15:40:27   投稿:hebedich  
這篇文章主要介紹了C語言字符串快速壓縮算法代碼,將字符串中連續(xù)出席的重復(fù)字母進行壓縮,其主要的壓縮字段的格式為”字符重復(fù)的次數(shù)+字符”。有需要的小伙伴參考下吧。

通過鍵盤輸入一串小寫字母(a~z)組成的字符串。
請編寫一個字符串壓縮程序,將字符串中連續(xù)出席的重復(fù)字母進行壓縮,并輸出壓縮后的字符串。

壓縮規(guī)則:

1、僅壓縮連續(xù)重復(fù)出現(xiàn)的字符。比如字符串”abcbc”由于無連續(xù)重復(fù)字符,壓縮后的字符串還是”abcbc”。
2、壓縮字段的格式為”字符重復(fù)的次數(shù)+字符”。例如:字符串”xxxyyyyyyz”壓縮后就成為”3x6yz”。

示例

輸入:“cccddecc” 輸出:“3c2de2c”
輸入:“adef” 輸出:“adef”
輸入:“pppppppp” 輸出:“8p”

主要說來就是進行字符串處理類的問題,主要涉及到:

1.字符串的輸入與輸出;
2.基本常用的C語言的字符串的函數(shù)使用;
3.對于多重情況的考慮;
4.將數(shù)字轉(zhuǎn)換成字符串并進行拼接;

復(fù)制代碼 代碼如下:

#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語言能夠有所幫助。

相關(guān)文章

  • OpenGL實現(xiàn)中點劃線法

    OpenGL實現(xiàn)中點劃線法

    這篇文章主要為大家詳細(xì)介紹了OpenGL實現(xiàn)中點劃線法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言棧順序結(jié)構(gòu)實現(xiàn)代碼

    C語言棧順序結(jié)構(gòu)實現(xiàn)代碼

    一個能夠自動擴容的順序結(jié)構(gòu)的棧 ArrStack 實例 (GCC編譯),有需要的朋友可以參考一下
    2013-10-10
  • C++有符號和無符號之間的轉(zhuǎn)換問題

    C++有符號和無符號之間的轉(zhuǎn)換問題

    在開發(fā)中經(jīng)常會遇到有符號和無符號之間的轉(zhuǎn)換問題,如果不清楚問題根源,很難解決bug,今天小編通過本文給大家分享c++有符號無符號轉(zhuǎn)換問題,需要的朋友參考下
    2021-07-07
  • 深入解析C++中的引用類型

    深入解析C++中的引用類型

    引用指的是對一個對象的引用。那么什么是對象?在c++中狹義的對象指的是用類,結(jié)構(gòu),聯(lián)合等復(fù)雜數(shù)據(jù)類型來聲明的變量,如 MyClass myclass,CDialog mydlg,等等
    2013-09-09
  • c++動態(tài)內(nèi)存空間示例(自定義空間類型大小和空間長度)

    c++動態(tài)內(nèi)存空間示例(自定義空間類型大小和空間長度)

    這篇文章主要介紹了c++動態(tài)內(nèi)存空間示例,自定義空間類型大小和空間長度,需要的朋友可以參考下
    2014-04-04
  • C++中volatile關(guān)鍵字的使用詳解以及常見的誤解

    C++中volatile關(guān)鍵字的使用詳解以及常見的誤解

    volatile 關(guān)鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如:操作系統(tǒng),硬件或者其他線程等
    2020-01-01
  • C++中的struct和class的區(qū)別詳解

    C++中的struct和class的區(qū)別詳解

    這篇文章主要介紹了C++中的struct和class的區(qū)別詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • C語言求Fibonacci斐波那契數(shù)列通項問題的解法總結(jié)

    C語言求Fibonacci斐波那契數(shù)列通項問題的解法總結(jié)

    斐波那契數(shù)列相關(guān)問題是考研和ACM中常見的算法題目,這里特地為大家整理了C語言求Fibonacci斐波那契數(shù)列通項問題的解法總結(jié),需要的朋友可以參考下
    2016-06-06
  • Objective-C限制函數(shù)調(diào)用的頻率詳解

    Objective-C限制函數(shù)調(diào)用的頻率詳解

    這篇文章主要給大家介紹了關(guān)于Objective-C限制函數(shù)調(diào)用的頻率的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • C++實現(xiàn)LeetCode(67.二進制數(shù)相加)

    C++實現(xiàn)LeetCode(67.二進制數(shù)相加)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(67.二進制數(shù)相加),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

平顶山市| 元谋县| 大洼县| 普格县| 安丘市| 沙湾县| 合山市| 五河县| 宝兴县| 繁峙县| 东山县| 宾阳县| 亚东县| 沁水县| 兴安盟| 贵溪市| 西平县| 陆河县| 广州市| 临沭县| 南城县| 嘉鱼县| 黄石市| 鄂尔多斯市| 祁连县| 高台县| 从化市| 东丰县| 特克斯县| 陇南市| 连山| 孝昌县| 区。| 阳春市| 屯留县| 吴江市| 乌鲁木齐市| 彭水| 潮安县| 舟曲县| 新营市|