?? separatech.c
字號(hào):
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
void SeparateCharacters(FILE *fp);
int main(int argc, char *argv[])
{
FILE *fp;
if(argc != 2) {
fprintf(stderr,"指定一個(gè)文件。\n");
exit(1);
}
else if((fp = fopen(*(++argv),"rt")) == NULL) {
fprintf(stderr,"打開文件 %s 錯(cuò)誤!",*argv);
exit(2);
}
SeparateCharacters(fp);
fclose(fp);
getch();
return 0;
}
void SeparateCharacters(FILE *fp) {
/* 統(tǒng)計(jì)輸入文件的行數(shù)、空格數(shù)、元音字母數(shù)、輔音字母數(shù)、非空白字母數(shù)、非空的行數(shù)。
* */
enum CharacterType {LINE, SPACELINE, NOTSPACELINE, VOWEL,CONSONANT, SPACE, NOTSPACE,UNKWON};
struct _count {
char *name;
int num;
}count[8] = {"line", 0, "spaceline", 0, "notspaceline", 0, "vowel", 0, "consonant", 0,
"space", 0, "notspace", 0, "unkwon", 0};
static int CharNumofLine;
enum CharacterType p;
int ch;
while((ch = fgetc(fp)) != EOF)
if(ch =='\n') {
if(CharNumofLine ==0)
count[SPACELINE].num++;
else{
CharNumofLine = 0;
count[NOTSPACELINE].num++;
}
count[LINE].num++;
}
else {
CharNumofLine++;
if(ch == 'a' || ch == 'o' || ch == 'e' || ch == 'u'
||ch == 'A' || ch == 'B' || ch == 'E' || ch == 'U') {
count[NOTSPACE].num++;
count[VOWEL].num++;
}
else if(isalpha(ch)) {
count[NOTSPACE].num++;
count[CONSONANT].num++;
}
else if(ch == ' ')
count[SPACE].num++;
else if(!isspace(ch))
count[NOTSPACE].num++;
else
count[UNKWON].num++; /* z正常情況下為 0 */
}
if(CharNumofLine != 0 && ch == EOF) {
count[NOTSPACELINE].num++;
count[LINE].num++; /* 把 EOF 所在的非空行也統(tǒng)計(jì)為一個(gè)行。*/
}
printf("統(tǒng)計(jì)結(jié)果如下:\n");
for(p = LINE; p <= UNKWON; p++)
printf("%15s: %5d\n",count[p].name, count[p].num);
}/* void SeparaterCharacters(int ch) */
//---------------------------------------------------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -