国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【藍橋杯算法題】字符串匹配算法

這篇具有很好參考價值的文章主要介紹了【藍橋杯算法題】字符串匹配算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目:用C語言寫一個程序,輸入一個字符串,過濾此串,只保留字符串中的字母字符,并統(tǒng)計新生成的字符串中包含的字母個數(shù),要求用指針實現(xiàn)。

實現(xiàn):

#include <stdio.h>
#include <ctype.h>

int filterLetters(char *str);

int main() {
    char str[100];
    printf("請輸入一個字符串: ");
    fgets(str, 100, stdin); // 獲取用戶輸入的字符串
    int letters_count = filterLetters(str); // 調(diào)用函數(shù)過濾字母字符并統(tǒng)計個數(shù)
    printf("過濾后的結果為: %s\n", str);
    printf("過濾后的字符串中包含 %d 個字母\n", letters_count);
    return 0;
}

int filterLetters(char *str) {
    char *p1 = str, *p2 = str;
    int count = 0;
    while (*p2 != '\0') {
        if (isalpha(*p2)) { // 判斷字符是否為字母
            *p1++ = *p2; // 指針 p1 和 p2 分別指向相同的字母字符
            count++; // 統(tǒng)計字母個數(shù)
        }
        p2++; // p2 每次移動指向下一個字符
    }
    *p1 = '\0'; // 將 p1 所在的位置賦值為 NULL,結束字符串
    return count;
}

解釋1:

這段代碼實現(xiàn)了一個過濾字符串中非字母字符的功能,并統(tǒng)計字母個數(shù)。

  • 首先,在主函數(shù)中,定義一個長度為100的字符數(shù)組str,用fgets函數(shù)從標準輸入獲取用戶輸入的字符串。
  • 然后調(diào)用filterLetters函數(shù),利用指針p1和p2遍歷字符串中的每個字符,判斷是否為字母字符,
  • 若是,則將其賦值給p1所指向的位置,并讓p1指向下一個位置,同時統(tǒng)計字母個數(shù)count;
  • 若不是,則直接跳過該字符,繼續(xù)向后遍歷。最后,在filterLetters函數(shù)中,將p1所在的位置賦值為NULL,結束字符串,并返回字母個數(shù)count。
  • 需要注意的是,isalpha函數(shù)是ctype.h頭文件中的一個函數(shù),用來判斷字符是否為字母,如果是則返回非零值(true),否則返回0(false)。此外,在使用fgets函數(shù)時,需要注意輸入字符串的長度不要超過數(shù)組str的長度,否則會導致數(shù)組越界的問題。

解釋2:

這段代碼的功能是從用戶輸入的字符串中過濾出字母字符,并統(tǒng)計字母字符的個數(shù),最后輸出過濾后的結果和字母字符的個數(shù)。

  • 具體來說,代碼中首先包含了兩個頭文件:stdio.h 和 ctype.h。stdio.h 包含了一些標準輸入輸出函數(shù),而 ctype.h
    包含了一些字符處理函數(shù),例如判斷一個字符是否為字母字符。
  • 在 main 函數(shù)中,首先定義了一個 char 類型的數(shù)組 str,用于存儲用戶輸入的字符串。然后通過 fgets 函數(shù)從標準輸入流
    stdin 中獲取用戶輸入的字符串,最多讀取 100 個字符,將其存儲在 str 數(shù)組中。
  • 接著調(diào)用 filterLetters函數(shù)對字符串進行過濾,該函數(shù)的作用是將字符串中的字母字符保留下來,并且將它們移動到數(shù)組的前面,非字母字符則被忽略掉。該函數(shù)返回被保留下來的字母字符的個數(shù)。
  • 在 filterLetters 函數(shù)中,首先定義兩個指針 p1 和 p2,分別指向字符串的開頭。然后使用一個 while循環(huán)遍歷整個字符串,如果當前字符是字母字符,則將其移動到 p1 所指向的位置,并將 p1 后移一位,同時統(tǒng)計字母字符的個數(shù)count。如果當前字符不是字母字符,則直接將 p2 后移一位。
  • 最后,在字符串的末尾加上一個 NULL 字符,以表示字符串的結束。在 main 函數(shù)中,輸出過濾后的結果和字母字符的個數(shù)即可。

總之,這段代碼實現(xiàn)了一個簡單的字符串處理功能,能夠對用戶輸入的字符串進行一定的過濾和統(tǒng)計。文章來源地址http://www.zghlxwxcb.cn/news/detail-477585.html

到了這里,關于【藍橋杯算法題】字符串匹配算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 字符串匹配-KMP算法

    字符串匹配-KMP算法

    KMP算法,字符串匹配算法,給定一個主串S,和一個字串T,返回字串T與之S匹配的數(shù)組下標。 在學KMP算法之前,對于兩個字符串,主串S,和字串T,我們根據(jù)暴力匹配,定義兩個指針,i指向主串S的起始,j指向字串T的起始,依次比較,如果 主串i位置的值等于子串j位置的值,

    2024年02月14日
    瀏覽(28)
  • 字符串匹配算法:KMP

    字符串匹配算法:KMP

    Knuth–Morris–Pratt(KMP)是由三位數(shù)學家克努斯、莫里斯、普拉特同時發(fā)現(xiàn),所有人們用三個人的名字來稱呼這種算法,KMP是一種改進的字符串匹配算法,它的核心是利用匹配失敗后的信息,盡量減少模式串與主串的匹配次數(shù)以達到快速匹配的目的。它的時間復雜度是 O(m+n) 字

    2024年02月06日
    瀏覽(25)
  • 【kmp算法】字符串匹配

    kmp算法解決的是字符串匹配的問題,具體來說假定我們要在主串s[ ] 中匹配模式串p[ ],找到匹配到的位置loc; 最自然的想法是暴力寫法 (BF)枚舉主串字符s[ i ] ,和模式串p[ j ]。一個一個匹配,如果匹配失敗,i指針回退回起點,往前進一位,再次進行比較,知道匹配成功。

    2024年02月04日
    瀏覽(31)
  • 一些常見的字符串匹配算法

    作者:京東零售?李文濤 字符串匹配在文本處理的廣泛領域中是一個非常重要的主題。字符串匹配包括在文本中找到一個,或者更一般地說,所有字符串(通常來講稱其為模式)的出現(xiàn)。該模式表示為p=p[0..m-1];它的長度等于m。文本表示為t=t[0..n-1],它的長度等于n。兩個字符串都建

    2023年04月25日
    瀏覽(29)
  • 字符串匹配算法(BF&&KMP)

    字符串匹配算法(BF&&KMP)

    個人主頁:平行線也會相交 歡迎 點贊?? 收藏? 留言? 加關注??本文由 平行線也會相交 原創(chuàng) 收錄于專欄【數(shù)據(jù)結構初階(C實現(xiàn))】 在學習這個算法之前,我們先來看看什么時字符串匹配算法,簡單來說 有一個主串和一個子串,查找子串在主串的位置,然后返回這個位置

    2023年04月17日
    瀏覽(18)
  • 【算法】算法(模擬、指針等)解決字符串類題目(C++)

    【算法】算法(模擬、指針等)解決字符串類題目(C++)

    字符串題目有很多種,這里篩選幾個考察模擬、雙指針等的題目,并用相關算法解決。 思路 題意分析 :題目要求找到字符串數(shù)組中的最長公共前綴。 解法一 : 兩兩比較 遍歷數(shù)組,每次比較后更新最長公共前綴,并循環(huán)比較找最長公共前綴 解法二 : 統(tǒng)一比較 遍歷第一個

    2024年01月16日
    瀏覽(21)
  • 28. 找出字符串中第一個匹配項的下標

    給你兩個字符串 haystack 和 needle ,請你在 haystack 字符串中找出 needle 字符串的第一個匹配項的下標(下標從 0 開始)。如果 needle 不是 haystack 的一部分,則返回 -1 。

    2024年02月10日
    瀏覽(24)
  • Leetcode的AC指南 —— 字符串/KMP:28.找出字符串中第一個匹配項的下標

    摘要: Leetcode的AC指南 —— 字符串/KMP:28.找出字符串中第一個匹配項的下標 。題目介紹:給你兩個字符串 haystack 和 needle ,請你在 haystack 字符串中找出 needle 字符串的第一個匹配項的下標(下標從 0 開始)。如果 needle 不是 haystack 的一部分,則返回 -1 。 題目介紹 :給你兩

    2024年02月02日
    瀏覽(28)
  • 探索經(jīng)典算法 拓撲排序,字符串匹配算法,最小生成樹

    拓撲排序、字符串匹配算法和最小生成樹是計算機科學中常用的數(shù)據(jù)結構和算法,它們在解決各種實際問題中具有重要的應用價值。在本文中,我將詳細介紹這三個主題,并提供相應的示例代碼和應用場景,以幫助讀者更好地理解和應用這些概念。 一、拓撲排序: 拓撲排序

    2024年02月05日
    瀏覽(23)
  • 探索字符串匹配算法:Rabin-Karp算法

    字符串匹配算法是計算機科學中的重要領域,用于在一個文本字符串中尋找特定的模式。本文將深入介紹Rabin-Karp算法,這是一種常用的字符串匹配算法,適用于在文本中高效地查找特定模式的出現(xiàn)。 Rabin-Karp算法是基于哈希的字符串匹配算法。它的主要思想是使用哈希函數(shù)來

    2024年02月11日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包