日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、需求描述

輸入一個字符串,編寫程序找出這個字符串中的最長連續字符,并求出其連續出現的次數。

例如,“123444445”中的最長連續字符是4,其連續出現的次數為5;“abcddef”中的最長連續字符是d,其連續出現的次數為2;“ab”中的最長連續字符是a,其連續出現的次數為1。

?

二、算法設計

我們可以采取逐個比較字符串中各個字符的辦法來獲取最長連續字符及其連續出現的次數。程序的總體流程如圖1所示。

圖1 程序的總體流程

?

三、特殊流程考慮

在編寫程序的過程中,我們要對輸入的字符串的長度及格式多做考慮,如:

1.如果輸入的字符串中含有空格,那么我們只處理空格之前的字符串。

2.輸入的字符串中可以包含數字、字母及一些特殊的字符,但不能包含中文字符。

?

四、程序代碼

?

/********************************************************************** * 版權所有 (C)2016, Zhou Zhaoxiong。 * * 文件名稱: LongestContinChars.c * 文件標識: 無 * 內容摘要: 尋找一個字符串中最長連續字符及其個數 * 其它說明: 例如, "aabbbc"的最長連續字符為b, 個數為3 * 當前版本: V1.0 * 作 者: Zhou Zhaoxiong * 完成日期: 20160316 * **********************************************************************/ #include // 重新定義數據類型 typedef signed char INT8; typedef int INT32; typedef unsigned int UINT32;// 函數聲明 void GetLongestContinChars(INT8 *pszInputStr);/********************************************************************** * 功能描述: 主函數 * 輸入參數: 無 * 輸出參數: 無 * 返 回 值: 0-執行成功 其它-執行失敗 * 其它說明: 無 * 修改日期 版本號 修改人 修改內容 * --------------------------------------------------------------------- * 20160316 V1.0 Zhou Zhaoxiong 創建 ***********************************************************************/ INT32 main() {INT8 szInputStr[100] = {0};UINT32 iPosFlag = 0;printf("Please input the string: \n");scanf("%s", szInputStr);printf("InputStr=%s\n", szInputStr);// 先判斷是否有中文字符for (iPosFlag = 0; iPosFlag iMaxLen) // 獲取連續出現次數最多的字符及其出現次數{iMaxLen = iCharCount;cLongestContinChar = pszInputStr[iPosFlag];}}printf("連續出現次數最多的字符是: %c\n連續出現的次數是: %d\n", cLongestContinChar, iMaxLen); }

?

五、程序測試

我們將編寫好的程序“LongestContinChars.c”上傳到Linux機器,并使用“gcc -g -oLongestContinChars LongestContinChars.c”命令對該程序進行編譯,生成“LongestContinChars”文件。下面對程序進行詳細的測試。

1.輸入字符串為“ababbba”時,程序運行情況如下:

Please input the string:

ababbba

InputStr=ababbba

連續出現次數最多的字符是: b

連續出現的次數是: 3

?

2.輸入字符串為“123321”時,程序運行情況如下:

Please input the string:

123321

InputStr=123321

連續出現次數最多的字符是: 3

連續出現的次數是: 2

?

3.輸入字符串為“!@##$%”時,程序運行情況如下:

Please input the string:

!@##$%

InputStr=!@##$%

連續出現次數最多的字符是: #

連續出現的次數是: 2

?

4.輸入字符串為“abcdef”時,程序運行情況如下:

Please input the string:

abcdef

InputStr=abcdef

連續出現次數最多的字符是: a

連續出現的次數是: 1?


5.輸入字符串為“我們123”時,程序運行情況如下:

Please input the string:

我們123

InputStr=我們123

我們123 has Chinese character, please check!


六、需求擴展

基于本文中的需求和程序,我們可考慮對需求進行以下擴展:

1.不區分字母的大小寫,即如果輸入的字符串為“AAAaaa”,那么程序輸出最長連續字符為A或a,出現次數為6。

2.不限制字符串中不能出現中文字符,即如果輸入的字符串為“窩窩頭123”,那么程序輸出最長連續字符為窩,出現次數為2。

?

總結

以上是生活随笔為你收集整理的【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。