C 语言统计关键字出现次数

时间:2022-11-04 10:11:36
#include <stdio.h>
#include <ctype.h>
#include <string.h> #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); /*<The C programming language (second edition) 中的小练习> 功能:统计输入文本中关键字出现的次数。
*/
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\n",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 != '\n' && c != ' ' && c != '\t' && isalpha(c))
word[i++] = c;
if(c == '\n' || c == ' ' )
{
word[i] = '\0'; 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 语言统计关键字出现次数的更多相关文章

  1. 统计C语言关键字出现次数

    统计C语言关键字出现次数 <C程序设计语言>K&R版本第6章结构6.3结构数组内容 /* Name: 统计c语言关键字出现次数 Copyright: Author: lingr7 ...

  2. C语言中关键字auto、static、register、const、volatile、extern的作用

    原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.exter ...

  3. 通过R语言统计考研英语(二)单词出现频率

    通过R语言统计考研英语(二)单词出现频率 大家对英语考试并不陌生,首先是背单词,就是所谓的高频词汇.厚厚的一本单词,真的看的头大.最近结合自己刚学的R语言,为年底的考研做准备,想统计一下最近考研英语( ...

  4. 扫二维码下载apk并统计被扫描次数&lpar;及微信屏蔽下载解决方案&rpar;

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5395715.html 需求:想让用户扫描一个二维码就能下载APP,并统计被扫描次数. 两种实现方法: 1.一 ...

  5. python统计元素重复次数

    python统计元素重复次数 # !/usr/bin/python3.4 # -*- coding: utf-8 -*- from collections import Counter arr = [ ...

  6. C语言中关键字volatile的含义【转】

    本文转载自:http://m.jb51.net/article/37489.htm 本篇文章是对C语言中关键字volatile的含义进行了详细的分析介绍,需要的朋友参考下 volatile 的意思是“ ...

  7. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(&quot ...

  8. hash数组快速查找一个字符串中出现最多的字符,并统计出现的次数

    如何快速查找一个字符串中出现最多的字符,并统计出现的次数? 可以使用hash数组,也就是关联数组实现快速查找功能. function seek(str) { var hash = []; var ma ...

  9. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

随机推荐

  1. 直线的参数方程ABC

    直线的参数方程的来源 如图所示, 直线\(l\)的倾斜角为\(\theta\),经过定点\(P_0(x_0,y_0)\),在直线上有一动点\(P(x,y)\),如果我们取直线的单位方向向量\(\vec ...

  2. python - socket - client端指定ip和端口

    问题描述: 在设备中有3个NI, ip分别为192.168.1.5/6/7.其中本端192.168.1.6同对端192.168.1.10建立了一个tunnel. 我希望测试tunnel连通性, 对端起 ...

  3. Codeforces Round &num;344 &lpar;Div&period; 2&rpar;

    水 A - Interview 注意是或不是异或 #include <bits/stdc++.h> int a[1005], b[1005]; int main() { int n; sc ...

  4. 课堂所讲整理:HTML--8Window&period;document对象

    1.Window.document对象 一.找到元素: docunment.getElementById("id"):根据id找,最多找一个:    var a =docunmen ...

  5. PAT &lpar;Advanced Level&rpar; 1084&period; Broken Keyboard &lpar;20&rpar;

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  6. PhoenixFD插件流体模拟——UI布局【Output】详解

    Liquid Output 流体输出  本文主要讲解Output折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liquid+Outp ...

  7. C&num;中 const 和 readonly 的区别

    C#中 const 和 readonly 的区别 来源 https://www.cnblogs.com/gsk99/archive/2008/10/10/1308299.html http://dev ...

  8. myeclipse提示错误。

    Syntax error, parameterized types are only available if source level is 1.5 解决方法:编译器问题.注意myeclipse10 ...

  9. common&period;php

    <?php /** * */ class Common { if(!function_exists('is_php')) { function is_php($version = '5.0.0' ...

  10. 使用redis的发布订阅模式实现消息队列

    配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...