字符统计(改1)
2016-04-11 20:55
405 查看
此次改进稍微加了一个文件名和文件存储位置的输入:
View Code
#include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string.h> int character=0;//字符数 int word=0;//单词数 int space=0;//空格数 char words[1000];//单词存储 int wordnum=0;//单词存储的数组位置 int Word(char *f); int show();//显示单词 int main() { int choice;//选择的输入 FILE *fp;//文件指针 char c; //文件字符读取存储 char filename[20] ; char place[10]; char Openname[40]; printf("请输入文件所在位置:"); gets(place); printf("请输入文件名:"); gets(filename); strcat(filename, ".txt"); strcpy(Openname,place); strcat(Openname,"\\"); strcat(Openname,filename); fp = fopen(Openname, "r"); if (fp == NULL) { printf("文件打开失败"); return 0; } while (feof(fp) != 1) { c = fgetc(fp); if (isalnum(c) != 0 || c == '_' || c == '.') { Word(fp); words[wordnum] = c; wordnum++; } else if (c == ' ') { space++; } else { character++; } } printf("文件中字符,单词统计如下:\n"); printf("单词数:%d,符号数:%d,空格数:%d\n", word, character, space); fclose(fp); printf("查看单词请按1,否则请按任意键"); scanf_s("%d", &choice); if (choice == 1) { show(); } else return 1; } int Word(char *f) { char c; while (feof(f) != 1) { c = fgetc(f); if (isalnum(c) != 0 || c == '_' || c == '.') { character++; words[wordnum] = c; wordnum++; } else if(c==' ') { space++; word++; words[wordnum] = ' '; wordnum++; return 1; } else { word++; words[wordnum] = ' '; wordnum++; return 1; } } } int show() { int a; for (int i = 0; i < wordnum+1; i++) { printf("%c", words[i]); } printf("谢谢使用"); }
View Code
相关文章推荐
- linux下管道及重定向
- YTU 3008: 链串的基本运算
- SHTSC2011(SHOI) 双倍回文 一道用Manacher优化的动态维护题
- vector 详细用法 C++
- Centos7 ssh修改默认端口号
- LeetCode Best Time to Buy and Sell Stock III
- Hibernate 检索策略
- 数据结构 --- 线性表学习(php模拟)
- 【html】:html中实现下拉列表
- RabbitMQ入门(一) —— 基本概念
- 山东省第一届ACM省赛 F SDUT 2156 Fairy tale
- YTU 3007: 顺序串的基本运算
- activiti自定义流程之整合(二):使用angular js整合ueditor创建表单
- 【 OpenCV学习笔记 002】OpenCV 2.4.9组件结构解析
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- activiti自定义流程之整合(二):使用angular js整合ueditor创建表单
- 在VS2013中配置OpenCL开发 环境
- 楼层扔鸡蛋问题
- Mybaits 批量操作
- 嵌入式Linux中常见的问题