📄 1.cpp
字号:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
enum {in = 1, out = 0};
int state = out,m=0;
int getident(int limit, char id[]) {
int i,j,d;
char c;
for (i=0;(c=getchar())!=EOF; ) {
if (state = out){
if ((c == '"')&&(m==0)){
m=1;
for( ; ;c=getchar()){
if ((c == '"')&&(m=1)){
m=0;
break;}}
}
if (isalpha(c)) {
id[0]=c;
i++;
state = in;
}
if (!isspace(c)){
i=0;
}
}
if (state = in && i<=limit-1) {
if (c == '/'){
if ((d=getchar())== '/' ){
for( ;c=getchar(); ){
if (c=='\n')
break;}
}
else if ((d=getchar())=='*'){
for( ;; c=getchar()){
if (c == '*'){
if ((d=getchar())=='/')
break;}}}
}
else{
if (isalpha(c)||(c==';')) {
id[i] = c;
i++;
continue;
}
if (isspace(c)) {
state = out;
return i;
}
else {
while ((c=getchar())!=' '&&c!='\n');
for(j=0;j<10;j++)
id[j]='\0';
state = out;
i=0;
}
}
if (i=limit) {
if (isspace(c)) {
state = out;
return i;}
else {
while ((c=getchar())!=' '&&c!='\n');
for (j=0;j<10;j++)
id[j]='\0';
state = out;
i=0;
}
}
}}
return 0;
}
int main () {
char s[10],a1[]="break;",a2[]="continue;",
keywords [32][9]={
"auto","break","case","char",
"const","continue","default","do",
"double","else","enum","extern",
"float","for","goto","if",
"int","long","register","return",
"short","size","sizeof","static",
"struct","switch","typedef","union",
"unsigned","void","volatile","while"};
int counters[32],i,n,j;
for (i=0;i<32;i++)
counters[i]=0;
for (i=0;i<10;i++)
s[i]='\0';
while (getident(9,s)>0) {
if (strcmp(s,a1)==0)
counters[1]++;
if (strcmp(s,a2)==0)
counters[5]++;
for (n=0;n<32;n++)
if (strcmp(s,keywords[n])==0) {
counters[n]++;
}
for (i=0;i<9;i++) s[i]='\0';
}
for (i=0; i<32;i++){
if (counters[i]>0) {
for (j=0;keywords[i][j]!='\0';j++)
putchar(keywords[i][j]);
putchar(':');
printf("%d\n",counters[i]);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -