亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? keyword.c

?? 統計 C 語言源程序里標識符的個數及相應標識符出現次數的程序
?? C
字號:
//---------------------------------------------------------------------------
/* 統計 C 語言源程序里標識符的個數及相應標識符出現次數的程序 */
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <io.h>
#include <alloc.h>
#include <fcntl.h>
#include <process.h>
#include <sys\stat.h>
#include <string.h>


#define KEYWORDMAXLENGTH     32
#define KEYWORDTABLELENGTH   32

#undef getchar
#undef isalnum
#undef isalpha

typedef struct _KeywordTable {
    char *key;
    int count;
}KeywordTable;

KeywordTable keywordTable[KEYWORDTABLELENGTH] = {
    "auto"     , 0, "break"  , 0, "case"    , 0, "char"   , 0, "const"    , 0, "continue" ,0 ,
    "default"  , 0, "do"     , 0, "double"  , 0, "else"   , 0, "enum"     , 0, "extern"   ,0 ,
    "float"    , 0, "for"    , 0, "goto  "  , 0, "if"     , 0, "int"      , 0, "long"     ,0 ,
    "register" , 0, "return" , 0, "short"   , 0, "signed" , 0, "sizeof"   , 0, "static"   ,0 ,
    "struct"   , 0, "switch" , 0, "typedef" , 0, "union"  , 0, "unsigned" , 0, "void"     ,0 ,
    "volatile" , 0, "while"  , 0};

int getword(char *word,int limit,int handle);
int _isalnum(char ch);
int _isalpha(char ch);
int _getchar(int handle);
KeywordTable *binsearch(KeywordTable *pkeywordTable, char *keyWord, int keywordTableLength);
void format(int space);

int main(int argc, char *argv[])
{
        char keyWord[KEYWORDMAXLENGTH + 1];
        KeywordTable *found;
        int handle;
        if(argc != 2) {
            fprintf(stderr,"請在命令行中指定一個 C 語言源程序文件。\n");
            exit(1);
        }
        else  if ((handle = open(*(++argv), O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1) {
            fprintf(stderr,"打開指定的文件 %s 時出現錯誤。\n",*argv);
            exit(2);
        }
        while(getword(keyWord, KEYWORDMAXLENGTH + 1, handle) > 0) /* 只有這樣改一下,在getword函數中的循環while(len<limit)因為len==limit結束時,word[len] = '\0'才不會產生越界防問的嫌疑. */
            if((found = binsearch(keywordTable, keyWord, KEYWORDTABLELENGTH)) != NULL)
                found->count++;
        close(handle);
        for(found = keywordTable; found < keywordTable + KEYWORDTABLELENGTH; found++) {
            printf("%10s: %5d\n",found->key,found->count);
            //format(0);
        }
        getch();
        return 0;
}
int getword(char *word,int limit,int handle) {
/* 這個 getword 函數沒有考慮預處理宏的影響;考慮了注釋和字符串常量。
 * 在處理過程中,函數會把預處理宏當作正常的程序代碼對待,同時,函數
 * 也會掠過空白類字符(比如空格、換行符、橫向制表符等)、注釋和字符
 * 串常量
 * */
     static int priorch,ch = ' ';
     int len = 0;

     while(ch != EOF && !_isalpha(ch)) {
         if(isspace(ch)){  /* 掠過空白類字符 */
             while(isspace(ch))
                 ch = _getchar(handle);
             continue;
         }
         else if(ch == '/') {  /* 掠過注釋 */
                  if((ch = _getchar(handle)) == '*') {
                      while(priorch = ch,(ch = _getchar(handle)) != EOF && (priorch != '*' || ch != '/'));
                      ch = _getchar(handle);
                      continue;
                  }
                  continue;
              }
         else if(ch == '\"') { /* 掠過字符串常量 */
                  while((ch = _getchar(handle)) != EOF) {
                      if(ch == '\\') {
                          ch = _getchar(handle);
                          continue;
                      }
                      else if(ch == '\"')
                          break;

                  }
                  ch = _getchar(handle);
                  continue;
              }
         ch = _getchar(handle);
     }
     if(ch == EOF)
         return len;
     word[len++] = ch; /* 標識符的第一個字符是字母 */
     while(len < limit - 1 && _isalnum(ch = _getchar(handle)))/* word里面最多放limit個字符,也就是(KEYWORDMAXLENGTH + 1)個字符. */
        word[len++] = ch;
     word[len] = '\0';
     //printf("%s ",word);
     return len;
}/* iint getword(char *word,int limit,int *handle) */

int _isalpha(char ch) {
/* 如果一個字符是字母返回 1 否則返回 0 */

    return ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' || ch == '_';
}/* int _isalpha(char ch) */
int _isalnum(char ch) {
/* 如果一個字符是數字字符或者字母返回 1 否則返回 0 */

    return _isalpha(ch) || ch >= '0' && ch <= '9';
}/* int _isalnum(char ch) */
int _getchar(int handle) {
/* 帶有預讀緩沖區的 _getchar */
    static char buffer[1024];
    static char *bufp;
    static int n;

    if(n == 0) { /* 預讀緩沖區是空的 */
        //n = read(handle,buffer,sizeof(buffer));
        n = read(handle,buffer,1024);
        bufp = buffer;
    }
    return (--n >= 0) ? (unsigned char) *bufp++ : (n = 0,EOF);
}/* int _getchar(int *handle) */
KeywordTable *binsearch(KeywordTable *pkeywordTable, char *keyWord, int keywordTableLength) {
/* 使用二分查找法查找一個單詞是不是出現在指定的關鍵詞表中 */
    KeywordTable *low  = pkeywordTable;
    KeywordTable *high = pkeywordTable + keywordTableLength;
    KeywordTable *middle;
    int cond;

    while(low < high) {
        middle = low + (high - low) / 2;
        if((cond = strcmp(keyWord, middle->key)) < 0)
            high = middle;
        else if(cond > 0)
            low = middle + 1;
        else
            return middle;
    }
    return NULL;
}/* KeywordTable *binsearch(KeywordTable *pkeywordTable, char *keyWord, int keywordTableLength) */
void format(int space) {
/* 這個函數以每 (space + 1)次調用形成一個周期,其中的前 space 次每次調用輸出一個空格,第
 * (space + 1)次調用輸出一個換行符
 * */
     static char count;
     ++count <= space ? putchar(' ') : (count = 0, putchar('\n'));
}/* void format(void) */

//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日韩粉嫩一区二区三区| 日本不卡一区二区三区 | 91在线免费视频观看| 欧美日韩精品三区| 国产精品美女久久久久久2018| 亚洲午夜成aⅴ人片| 成人永久aaa| 欧美va亚洲va香蕉在线| 亚洲一区二区三区免费视频| 东方欧美亚洲色图在线| 欧美一级欧美一级在线播放| 亚洲色欲色欲www| 成人午夜激情片| 久久久久久久久久久电影| 美女被吸乳得到大胸91| 欧美精品自拍偷拍| 亚洲va国产va欧美va观看| 一本色道久久综合亚洲91| 久久久91精品国产一区二区精品 | 日韩视频一区二区三区| 亚洲成a人v欧美综合天堂下载| 成人va在线观看| 国产午夜精品在线观看| 国产综合色精品一区二区三区| 欧美精品tushy高清| 亚洲不卡一区二区三区| 在线观看一区二区视频| 亚洲精品水蜜桃| 91精品福利视频| 亚洲黄色小说网站| 欧美综合亚洲图片综合区| 尤物av一区二区| 欧美性色aⅴ视频一区日韩精品| 亚洲色图20p| 色就色 综合激情| 亚洲综合一区二区三区| 欧美日韩一区二区在线视频| 一区二区高清免费观看影视大全 | 一区二区三区欧美在线观看| youjizz国产精品| 亚洲欧美色一区| 在线观看视频91| 亚洲丰满少妇videoshd| 欧美精品国产精品| 日本在线播放一区二区三区| 精品国产欧美一区二区| 精品亚洲国内自在自线福利| 日韩欧美一区中文| 成人一区二区三区视频在线观看| 日本一区二区三区久久久久久久久不| 国产99一区视频免费| 亚洲欧洲国产专区| 欧美日本免费一区二区三区| 美女诱惑一区二区| 久久久久久毛片| 91原创在线视频| 五月综合激情网| 精品福利二区三区| 99re在线精品| 免费在线一区观看| 亚洲国产精品激情在线观看| 日本乱码高清不卡字幕| 天天色天天爱天天射综合| 日韩视频永久免费| 91在线观看污| 免费成人性网站| 中文字幕中文字幕在线一区| 欧美日韩综合在线免费观看| 国产综合色产在线精品| 亚洲欧美视频在线观看| 日韩一区二区三区在线| 99精品视频在线播放观看| 亚洲一区二区不卡免费| 26uuu另类欧美亚洲曰本| 91污片在线观看| 韩日精品视频一区| 亚洲福利电影网| 自拍偷拍国产亚洲| 久久精品亚洲精品国产欧美kt∨ | av中文一区二区三区| 日产精品久久久久久久性色| 日本一区二区高清| 欧美高清激情brazzers| 99久久精品久久久久久清纯| 久久99热国产| 亚洲高清视频中文字幕| 国产精品美女久久久久久久网站| 日韩午夜激情av| 欧美综合一区二区三区| 成人av网址在线观看| 激情五月婷婷综合网| 性久久久久久久久| 日韩伦理电影网| 欧美经典一区二区三区| 欧美成人福利视频| 欧美日韩在线电影| 91麻豆文化传媒在线观看| 粉嫩av亚洲一区二区图片| 蜜臀av一区二区在线观看| 亚洲成人黄色影院| 一区二区三区在线视频观看58| 久久青草欧美一区二区三区| 欧美一级二级三级乱码| 欧美麻豆精品久久久久久| 色哟哟国产精品| 91在线码无精品| 色哟哟欧美精品| 91麻豆精东视频| 色综合亚洲欧洲| 91蜜桃传媒精品久久久一区二区| 成人动漫在线一区| 99久久精品免费看| 91麻豆国产福利精品| 白白色 亚洲乱淫| 91浏览器打开| 色婷婷精品久久二区二区蜜臂av | 91色九色蝌蚪| 91麻豆成人久久精品二区三区| 成人av影院在线| 色综合夜色一区| 在线观看不卡视频| 91精品国产手机| 欧美岛国在线观看| 久久综合给合久久狠狠狠97色69| 精品欧美一区二区久久| 久久影院电视剧免费观看| 国产欧美日韩中文久久| 国产精品久久看| 一区二区三区久久| 亚洲国产精品久久艾草纯爱| 日日欢夜夜爽一区| 激情成人午夜视频| 成人免费观看av| 91久久香蕉国产日韩欧美9色| 欧美亚洲精品一区| 日韩欧美一区二区久久婷婷| 2021中文字幕一区亚洲| 国产精品国产精品国产专区不片| 亚洲乱码国产乱码精品精可以看 | 在线播放欧美女士性生活| 日韩精品自拍偷拍| 国产亚洲精品精华液| 亚洲精品日韩专区silk| 午夜精品影院在线观看| 国产乱码字幕精品高清av| 色天天综合色天天久久| 欧美变态口味重另类| 国产色产综合产在线视频| 亚洲免费在线看| 美日韩一级片在线观看| 99精品国产99久久久久久白柏| 欧美日本国产一区| 国产精品视频看| 亚洲妇女屁股眼交7| 国产伦精品一区二区三区视频青涩 | 久久国产精品99久久人人澡| 国产suv一区二区三区88区| 欧美日韩一区二区电影| 国产视频911| 午夜不卡av免费| a4yy欧美一区二区三区| 日韩欧美精品在线| 亚洲伦理在线精品| 国产精品一区二区视频| 欧美猛男男办公室激情| 综合激情成人伊人| 国产美女久久久久| 91精品国产福利| 亚洲精品国产a| 成人黄动漫网站免费app| 欧美电视剧免费全集观看| 亚洲午夜av在线| 色综合天天性综合| 国产欧美日韩不卡免费| 麻豆精品视频在线观看| 欧美裸体bbwbbwbbw| 亚洲美女精品一区| 成人免费视频网站在线观看| 日韩视频免费观看高清完整版| 亚洲精品视频自拍| 97精品电影院| 综合色中文字幕| 丁香亚洲综合激情啪啪综合| 精品免费日韩av| 青草国产精品久久久久久| 欧美精品日韩精品| 亚洲一区二区在线观看视频 | 制服.丝袜.亚洲.中文.综合| 亚洲一区二区综合| 91国模大尺度私拍在线视频| 亚洲品质自拍视频网站| 91亚洲精品久久久蜜桃网站| 国产精品网站在线观看| 国产一区二区免费视频| 久久久久久一二三区| 国产iv一区二区三区| 欧美国产日本视频| 成人高清视频在线| 亚洲视频你懂的| 91国产丝袜在线播放|