當(dāng)前位置:
首頁(yè) >
C语言 计算一串字符中出现的数字字符数
發(fā)布時(shí)間:2025/5/22
21
豆豆
生活随笔
收集整理的這篇文章主要介紹了
C语言 计算一串字符中出现的数字字符数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
getchar 函數(shù)的功能是讀取字符串并將其返回。輸入結(jié)束或讀取過(guò)程中發(fā)生錯(cuò)誤時(shí),就會(huì)返回EOF值。
#include <stdio.h>int main(void){int i, str;int count[10] = {0};puts("請(qǐng)輸入數(shù)字:");puts("輸入完成后 按 Enter"); puts("再按 Ctrl + z ");puts("Enter 結(jié)束");while ((str = getchar()) != EOF){switch (str){case '0' :count[0]++;break;case '1' :count[1]++;break;case '2' :count[2]++;break;case '3' :count[3]++;break;case '4' :count[4]++;break;case '5' :count[5]++;break;case '6' :count[6]++;break;case '7' :count[7]++;break;case '8' :count[8]++;break;case '9' :count[9]++;break;}}puts("數(shù)字字符的出現(xiàn)次數(shù):");for (i = 0; i < 10; i++){printf("%d: %d\n", i, count[i]);} return 0; }運(yùn)行結(jié)果:
注:
在需要對(duì)象式宏EOF的程序中,如果沒(méi)有包含<stdio.h>頭文件,則進(jìn)行如下定義式不行的。
#define EOF -1
因?yàn)镋OF規(guī)定為“負(fù)”,但不一定是“-1”。
緩沖:
緩沖:
在此程序中,并不是每讀入一個(gè)字符后就馬上輸出,而是按下回車鍵后一并輸出。
C語(yǔ)言的輸入輸出一般會(huì)將讀入的字符以及待輸出的字符暫時(shí)保存在緩存中,當(dāng)達(dá)到下列條件時(shí)才進(jìn)行實(shí)際的輸入輸出操作。
- 1.緩存已滿 (全緩沖)
- 2.輸入換行符 (行緩沖)
- 3.立即輸出 (無(wú)緩沖)
由于每個(gè)數(shù)字字符在ASCII 碼表中都有對(duì)應(yīng)的值,通過(guò)以下程序可對(duì)字符的值進(jìn)行打印。
#include <stdio.h>int main(void){int i;printf("EOF = %d\n", EOF);for (i = 0; i< 10; i++){printf("'%d' = %d\n", i, '0' + i);} return 0; }運(yùn)行結(jié)果:
利用ASCII 碼表中字符對(duì)應(yīng)的值,可改善 計(jì)算一串字符中出現(xiàn)的數(shù)字字符數(shù)程序中的代碼,使程序變得更加簡(jiǎn)潔。
#include <stdio.h>int main(void) {int i, j, str;int count[10] = { 0 };puts("請(qǐng)輸入數(shù)字:");puts("輸入完成后 按 Enter");puts("再按 Ctrl + z ");puts("Enter 結(jié)束");while ((str = getchar()) != EOF) {if (str >= '0' && str <= '9') {count[str - '0']++;}}puts("數(shù)字字符的出現(xiàn)次數(shù):");for (i = 0; i < 10; i++) {printf("%d: ", i);for (j = 0; j < count[i]; j++){putchar('*');}puts("");} }運(yùn)行結(jié)果
總結(jié)
以上是生活随笔為你收集整理的C语言 计算一串字符中出现的数字字符数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言 递归实现辗转相除法 和 辗转相减
- 下一篇: C语言 字符串的读取