- 最後登錄
- 2024-4-30
- 在線時間
- 3179 小時
- 註冊時間
- 2004-8-20
- 閱讀權限
- 20
- 精華
- 0
- UID
- 12056
- 帖子
- 475
- 積分
- 967 點
- 潛水值
- 31659 米
| 若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php 還是先幫您惡補一下...ASCII...正常來說...共128個...而會顯示在屏幕上的是 大於等於32同時小於等於126...更詳細就稍微看一下維基吧...以下網址
我就拿大大的程式碼添加了一些您想要的功能- #include<stdio.h>
- #include<stdlib.h>
- #include<ctype.h>
- #include<conio.h>
- int main(int argc, char *argv[])
- {
- char ch;
- int t = 0, n = 0, digit = 0, upper = 0, lower = 0, punct = 0, cntrl = 0, celse = 0;
- int ascii_sum[127]; //新增
- for (int i = 0; i < 127; i++) //新增
- {
- ascii_sum[i] = 0;
- }
- p rintf("=判斷字元種類,按ESC鍵離開=\n");
- do
- {
- p rintf("\n請輸入字元 : ");
- ch = getche();
- if (ch >= 0 && ch < 127)
- {
- ascii_sum[ch]++; //新增
- if (ch == 27)
- {
- break;
- }
- else if (isdigit(ch))
- {
- digit++;
- }
- else if (isalpha(ch))
- {
- if (isupper(ch))
- {
- upper++;
- }
- else
- {
- lower++;
- }
- }
- else if (ispunct(ch))
- {
- punct++;
- }
- else if (iscntrl(ch))
- {
- cntrl++;
- }
- else
- {
- celse++;
- }
- t = upper + lower;
- n++;
- }
- } while (1);
- p rintf("\n\n");
- p rintf("輸入0-9數字 %d 次.\n", digit);
- p rintf("輸入大寫字母 %d 次.\n", upper);
- p rintf("輸入小寫字母 %d 次.\n", lower);
- p rintf("輸入英文字 %d 次.\n", t);
- p rintf("輸入標點符號 %d 次.\n", punct);
- p rintf("輸入控制字元 %d 次.\n", cntrl);
- p rintf("輸入其他按鍵 %d 次.\n", celse);
- p rintf("總共按鍵幾次 %d 次.\n", n);
- for (int i = 32; i < 127; i++) //新增
- {
- if (ascii_sum[i] > 0)
- {
- p rintf("%c 共按了%d下\r\n" , i , ascii_sum[i]);
- }
- }
- p rintf("\n");
- system("PAUSE");
- return 0;
- }
複製代碼 第一段新增...創建計數空間...並且把數量初始化歸0
第二段新增...假設按了數字0...他的ASCII碼為48...因此把暫存空間編號48號的數值+1
第三段新增...只要暫存空間裡面的數據有大於0的(代表有按過)...就顯示按了幾次
若是還沒看懂...再提問吧
另外p rintf...只要把p跟r中間空格消掉...就可以了... |
|