C語言 | 統計一段話中的字符

2021-02-13 C語言入門到精通

「要成為絕世高手,並非一朝一夕,除非是天生武學奇才,但是這種人…萬中無一」

這道理放在C語言學習上也一併受用。在編程方面有著天賦異稟的人畢竟是少數,我們大多數人想要從C語言小白進階到高手,需要經歷的是日積月累的學習。那麼如何學習呢?當然是每天都練習一道C語言題目!!

作者

閆小林

白天搬磚,晚上做夢。我有故事,你有酒麼?

例65:有一篇文章,共有3行文字,每行有80個字符。C語言編程實現分別統計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數 

解題思路:數組text的行號為0~2,但在提示用戶輸入各行數據時,小林這裡要求讀者輸入第1行、第2行、第3行,而不是第0行,第1行,第2行,這完全是照顧讀者的習慣。為此,在程序第6行中輸出行數時用i+1,而不用i。這樣並不影響程序對數組的處理,程序其他地方數組的第1個下標值仍然是0~2。 

#include<stdio.h>//頭文件
int main()//主函數
{
  int i,j,lower,number,space,other,capital;//定義整型變量
  char text[3][80];//定義字符數組
  capital=0;//賦初值
  lower=0;//賦初值
  number=0;//賦初值
  space=0;//賦初值
  other=0;//賦初值
  for(i=0;i<3;i++)
  { //設置3行
    printf("請隨意輸入一行:\n"); //注意錄入的必須是英文狀態下的符號
    gets(text[i]); //gets函數可以錄入空格
    for(j=0;j<80&&text[i][j]!='\0';j++)
    {
      if(text[i][j]>='A'&&text[i][j]<='Z')//如果是大寫
      {
        capital++;
      }
      else if(text[i][j]>='a'&&text[i][j]<='z')//如果是小寫
      {
        lower++;
      }
      else if(text[i][j]>='0'&&text[i][j]<='9')//如果是數字
      {
        number++;
      }
      else if(text[i][j]==' ')//如果是空格
      {
        space++;
      }
      else   //其他
      {
        other++;
      }
    }
  }
  printf("\n輸出結果:\n");//提示語句
  printf("大寫字母 :%d\n",capital);
  printf("小寫字母 :%d\n",lower);
  printf("數字 :%d\n",number);
  printf("空格 :%d\n",space);
  printf("其他字符 :%d\n",other);
  return 0;//主函數返回值為0
}

請隨意輸入一行:
I love C yuyan
請隨意輸入一行:
123
請隨意輸入一行:
haha

輸出結果:
大寫字母 :2
小寫字母 :13
數字 :3
空格 :3
其他字符 :0

--
Process exited after 10.81 seconds with return value 0
請按任意鍵繼續. . .


以上,如果你看了覺得對你有所幫助,就給小林點個讚,分享給身邊的人叭,這樣小林也有更新下去的動力,跪謝各位父老鄉親啦~

相關焦點

  • C語言——文件統計字符
    題目描述編程對文件test.dic的字符進行統計,統計字母,數字,其他字符的個數,輸出統計結果到test.out。輸入a12 .=EOF) { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) x++; else if(ch
  • c語言指針與字符數組
    我們所說的字符串就是字符數組的一種,就如我們常見的"hello world!",字符串的使用在C語言中也是非常重要的,常常會遇到一些操作,如字符串的修改、拷貝、字符串長度等,在物聯網的應用中也尤為突出,物聯網應用中所用的模組,大多是需要使用AT指令的,這就需要對字符串的操作。
  • C語言字符數組和字符串
    例如: char c[6]={'c', ' h ', 'i', 'n', 'a' , '\0' };對字符數組的各個元素逐個賦值後,各元素的值為: c[0]= 'c',c[1]= 'h',c[2]= 'i',c[3]= 'n',c[4]= 'a',c[5]= '\0';
  • C語言 | 統計字符中英文 空格 數字
    「要成為絕世高手,並非一朝一夕,除非是天生武學奇才,但是這種人…萬中無一」這道理放在C語言學習上也一併受用
  • 【C語言更新】C語言中字符串的操作
    void  *memchr(const void *str, int c, size_t n)在參數 str 所指向的字符串的前  n 個字節中搜索第一次出現字符 c(一個無符號字符)的位置。int  memcmp(const void *str1, const void *str2, size_t n)把 str1 和 str2 的前  n 個字節進行比較。
  • c語言:統計該程序本身一共有多少個字符,有多少行
    /*    項目實現:    編寫一個程序,統計該程序本身一共有多少個字符,有多少行,並列印輸出。
  • C語言:優雅的字符串函數庫
    以學習一門語言為例:大多數人都持有一種觀念,要真正學好一門語言必須得去所學語言當地學習或生活一段時間。而事實上,大多數人都沒有這樣的學習條件。例如:用新語言寫代碼注釋 / commit message / README / issue;對了,我作為英文的愛好者,一直想重啟我的英文學習之路,後續想在公眾號裡記錄一些英文相關的知識,請你們不要笑話我~~~二、字符串函數庫:Simple
  • C語言學習之我見-memchr()內存查找字符函數
    memchr()內存查找字符函數:主要用於從內存中查找自己需要的字符位置。
  • 在C語言中如何高效地複製和連接字符串?
    就目前而言,在編程領域中,C語言的運用非常之多,它兼顧了高級語言的彙編語言的優點,相較於其它程式語言具有較大優勢。作者 | Martin Sebor譯者 | 蘇本如,責編 | 劉靜以下為譯文:在所有標準C語言<string.h>頭文件中聲明的字符串處理函數中,最常用的是那些用來複製和連接字符串的函數。
  • 入門C語言中的數組,字符串常量與指針
    MAX_SIZE + 1];C數組開始於元素0,所以像陣列定義 int a[3];將創建三個int元件,可尋址如a[0],a[1],和a[2]請注意,即使定義很難說a[3],也沒有名為a[3]與其他變量一樣,全局和靜態數組元素默認情況下初始化為0,並且自動數組元素填充有垃圾值可以使用大括號中的一個或多個值來初始化數組
  • ​【轉載】字符轉數字:C語言裡atoi函數和它的童鞋
    在編程的過程中,我們可能因為某些功能需要,需要在字符和數字之間做互換,那麼如果你不知道有某些庫函數已經把這個小功能實現了,你又會繼續去「 造輪子 」!也就是根據自己對這塊內容的理解,自己去寫一個這樣的函數,其實這樣也挺好的,你的思維得到了鍛鍊。話不多說,乾貨如下!
  • C語言中的char類型也有signed和unsigned?字符也有正負之分嗎?
    其實,C語言中並沒有專門用來表示字符的數據類型,事實上,char 像 int、short 類型一樣,也是一種整型,只不過,char 類型是最短的整型而已,所以它當然可以有 signed 和 unsigned 兩種類型。
  • 第四篇:C語言中指針與字符串核心知識點梳理
    前面在講變量的時候,其中有一個特點就是變量的內存地址,即:變量在內存中實際的保存位置。這個內存地址如何獲取?它又有什麼意義?C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?這點將涉及到本文第二個核心知識點:字符串及其常規操作。重點包括:字符串處理函數、指針與字符串的關係等。
  • C語言字符串處理函數之字符串轉換、查詢函數
    字符串查詢函數:strchr:匹配字符串中首次出現的指定字符原型:char* strchr(const *s, int c)功能:用來找出參數s字符串中第一個出現參數說明:數組str中為"abcabc",使用strchr()查找'c'字符首次出現的位置,返回其首次出現的地址,列印輸出"cabc";第11行,將查找到地址的值修改為字符'*',原數組列印輸出變為"ab*abc"。
  • 從字符級的語言建模開始,了解語言模型與序列建模的基本概念
    生成文本序列的通常方式是訓練模型在給定所有先前詞/字符的條件下預測下一個詞/字符出現的概率。此類模型叫作統計語言模型,這種模型會嘗試捕捉訓練文本的統計結構,本文從字符級語言模型和名字預測出發向讀者介紹了語言建模的核心概念。循環神經網絡(RNN)模型常用於訓練這種語言模型,因為它們使用高維隱藏狀態單元處理信息的能力非常強大,建模長期依賴關係的能力也非常強。
  • 【C語言程序設計】C語言統計單詞個數,單詞個數算法
    在實際生活中經常會遇到一個問題:寫英語作文時,常常要求滿足一定的字數。
  • C語言編譯過程中的錯誤分析
    3.將字符常量與字符串常量混淆。  char c;  c=a;  在這裡就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規定以「」作字符串結束標誌,它是由系統自動加上的,所以字符串「a」實際上包含兩個字符:『a'和『',而把它賦給一個字符變量是不行的。
  • C語言實現求英文句子中最長的單詞
    在一個英文句子中找最長的單詞並統計單詞個數。假設句子中單詞之間以空格分隔,允許連續多個空格,最後以「.」號結束。要求:(1)輸出所有單詞(2)找出最長單詞並輸出(3)求最長單詞的長度(4)輸出句子中的單詞數 【分析】 用變量max記錄最長單詞的長度,用變量num統計每個單詞的字符數,用count統計句子中的單詞數,用變量word來判斷是否是單詞的開始,是單詞開始則令
  • 一文帶你了解c++和c中字符串的使用
    ,但是如果你對c語言理解不是很深的話,那你可能就不能"享受"到這裡面的"美味"用法了,既然標題都標註了這個,我也不賣關子,下面會有總結分享的。有可能有些網友還沒怎麼接觸到c++(c++它是一門面向對象的語言,而c是一門面向過程的語言,所以這裡可能沒接觸過那個面向對象的網友不習慣這個用法,不過還是建議至少要掌握一門面向對象的語言,在這個發展快速的時代,不能太固步自封了(我這裡也是簡單的介紹一下c++中的字符串,不會設計到類和對象什麼的,只是和c語言做個對比)。)1、什麼是字符串?
  • 「第6篇」「C程序上機題」「統計輸入的字符個數思路與實現」
    一、統計輸入的字符個數同學們在學習C語言課程中,經常會遇到一道題,就是要求你寫一個C程序,這個C程序能夠讀取你從鍵盤上輸入的字符,並且統計其中的字符個數,最後輸出總的字符個數並且把這些輸入的字符再輸出來。不少同學遇到這道題沒啥思路,不知該如何上手。