统计次数c语言,C 语言统计关键字出现次数
#include
#include
#include
#define NKEYS (sizeof keytab / sizeof(struct key))
struct key
{
char *word;
int count;
};
/*關鍵字列表(注意一定要按字典排序)*/
struct key keytab[15] =
{
"abort",0,
"break",0,
"clock",0,
"define",0,
"echo",0,
"fgetc",0,
"get",0,
"help",0,
"insert",0,
"jump",0,
"kind",0,
"long",0,
"malloc",0,
"null",0,
"operate",0
};
int binarysearch(char *word, struct key tab[], int n);
int getword(char *word);
/*
功能:統計輸入文本中關鍵字出現的次數。
*/
int main()
{
char word[30];
int n;
while(getword(word) != 0 && strcmp(word,"quit") != 0)
{
if((n = binarysearch(word,keytab,NKEYS )) >= 0);
keytab[n].count++;
}
for(n = 0; n < NKEYS; n++)
{
if(keytab[n].count > 0)
printf("%s : %d
",keytab[n].word,keytab[n].count);
}
return 0;
}
/*從輸入端得到一個單詞*/
int getword(char *word)
{ char c;
int i = 0;
while(isspace(c = getchar()))
;
while(1)
{
if(c != '
' && c != ' ' && c != '' && isalpha(c))
word[i++] = c;
if(c == '
' || c == ' ' )
{
word[i] = ' ';
return i;
}
c = getchar();
}
return i;
}
/*binarysearch 函數: 在tab[0]到tab[n]中查找單詞*/
int binarysearch(char *word, struct key tab[], int n)
{
int mid,l,h,flag;
l= 0;
h = n - 1;
while(l <= h)
{
mid = (l + h)/2;
if( (flag = strcmp(word,tab[mid].word)) < 0)
h = mid - 1;
else if(flag > 0)
l = mid + 1;
else
return mid;
}
return -1;
}
總結
以上是生活随笔為你收集整理的统计次数c语言,C 语言统计关键字出现次数的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 有懂装修的吗?来说下定制地板那个牌子好.
- 下一篇: 怎样做连锁办公空间的装修呢?
