满意答案

ajuum2d8l

推荐于 2017.09.12

采纳率:59%    等级:10

已帮助:674人

程序第一次运行时,会创建一个“word.txt”(不包括引号)的文本文件,然后要求输入单词。若要退出,请不要点DOS窗口的小叉叉,输入d即可。因为程序在结束之前,对数组中的单词重新排序,并存储到文件中。 #include "stdio.h"---

#include "stdlib.h" ---为exit()函数提供原型; #include "string.h"---字符串处理函数原型; #include "ctype.h"---字符处理函数原型; #define ROWS 256

#define COLS 32---定义“字典”的大小:可存放256个单词,每个单词的长度不超过31

static FILE *fp;---定义文件指针:内部链接,文件作用域;

static char a[ROWS][COLS];---定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。因为处理数组比处理文件方便。

char get_option(void);---接收用户的选项,防止误操作。若输入“a;”(不包括引号),那么将视为选项a

int b(int count);---完成选项b的作用--接收新单词;

void c(char *pt[], int count);---完成选项c的作用--通过指针对数组排序,实际数组元素位置未改变;

int check(char arr[], int count);---对输入的单词进行分辨,若输入 ni hao ,将视为单词 ni ,并且提示并剔除重复的单词;

void storage(char *pt[], int count);---在程序结束之前重新排序存储数组中的单词到文件中。

#include "stdio.h" #include "stdlib.h" #include "string.h" #include "ctype.h" #define ROWS 256 #define COLS 32 static FILE *fp;

static char a[ROWS][COLS]; char get_option(void); int b(int count);

void c(char *pt[], int count); int check(char arr[], int count); void storage(char *pt[], int count); int main(void) {

int i,count; int start;

char *pt[ROWS]; char ch, len; char input;

if((fp=fopen("words.txt","a+"))==NULL) {

fputs("不能打开或建立文件!\n",stderr); exit(1); }

fseek(fp,0L,SEEK_END); start=(int)ftell(fp)/32; count=start; rewind(fp);

if(fread(a,32*sizeof(char),start,fp)==0) { i=0;

puts("开始创建词库");

puts("请输入单词(每行一个)");

puts("在新行输入END结束输入:"); while(i

fflush(stdin);

if(strncmp(a[i],"END",3)==0) {

count+=i; break;

}

if(check(a[i], i)) continue; i++; } }

puts("\t\t*********************欢迎使用字典排版系统*******************\n\n");

puts(" MENU "); puts("您要做些什么?");

puts("a. 显示已有的单词 b. 添加新单词"); puts("c. 对已有的单词进行排序 d. 退出");

puts("\n\n\t\t**********************************************************\n"); while((input=get_option())!='d')

{

if(input=='a') { puts("已有的单词:"); for(i=0;i

{

printf(" "); puts(a[i]); } }

if(input=='b')

{

puts("开始创建词库");

puts("请输入新的单词(每行一个)"); puts("在新行输入END结束输入: "); count=b(count); }

if(input=='c') {

puts("对单词进行排序:"); c(pt, count);

for(i=0;i

printf(" "); puts(pt[i]); } }

puts("还要做些什么?"); }

storage(pt,count); fclose(fp);

puts("谢谢使用,再见!");

return 0; }

char get_option(void) {

char ch;

while((ch=getchar())'d') {

while((ch=getchar())!='\n') ;

puts("请输入a,b,c或者d."); }

fflush(stdin);

return ch; }

int b(int count) { int i;

i=count;

while(i

fflush(stdin); if(check(a[i], i)) continue;

if(strncmp(a[i],"END",3)==0) {

count=i; break; } i++; }

return count; }

void c(char *pt[], int count) { int i,j;

char *temp;

for(i=0;i

for(i=0;i

if(strcmp(pt[i],pt[j])>0) {

temp=pt[i]; pt[i]=pt[j]; pt[j]=temp; } } }

int check(char arr[], int count) { int i;

int flag=0;

for(i=0;i

printf("%s不是一个单词.\n",arr); flag=1; break; }

for(i=0;i

if(strncmp(a[i],a[count],strlen(a[count])+1)==0) {

puts("重复的单词!"); flag=1; }

return flag; }

void storage(char *pt[], int count) { int i,j;

char ptr[ROWS][COLS];

c(pt, count);

for(i=0;i

for(j=0;pt[i][j]!='\0';j++) ptr[i][j]=pt[i][j];

fp=fopen("words.txt","w+"); rewind(fp);

fwrite(ptr,32*sizeof(char),count,fp); }追问: 求问如何才能从文件中获取单词,输出时在另一文件中?

追答:不客气

00分享举报

用C语言对单词首字母进行排序,c语言单词排序相关推荐

  1. 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】

    编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...

  2. C语言编写取单词首字母,C语言练习之单词首字母大写

    /* *Copyright(c) 2016,烟台大学计算机学院 *All rights reserved. *作 者:刘金石 *完成日期:2016年4月22日 *版本 号:v1.0 *问题描述:字符串 ...

  3. c语言 单词首字母大写

    单词首字母大写 编写程序,输入一行字符,将每个单词的首字母改为大写后输出.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式 输入给出一行字符 ...

  4. 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...

    Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...

  5. 修改完 字符串单词首字母大写

    /**  *  */ package excelOperation; /**  * 该方法的主要作用是将EXCEL表中英文字符串的单词首字母转换为大写  */ import java.awt.Fram ...

  6. CSS实现英文或拼音单词首字母大写

    CSS实现英文或拼音单词首字母大写,只需要在css样式中加入: text-transform: capitalize 即可. 测试代码如下: <!doctype html> <htm ...

  7. 关于JS阶乘,首字母大写,最长单词计算,重复说话次数等简单基础算法练习...

    (1)阶乘问题. <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  8. 句子中单词首字母大写转换

    //函数将句子中的每个单词的首字母改为大写 string first_letter(string& sentence) {//定义string 指针,并指向string 首地址string:: ...

  9. 前端-给定一个字符串str,如何实现每个单词首字母都大写,其余部分小写。

    确保字符串的每个单词首字母都大写,其余部分小写. function f(str){ var arr = str.toLowerCase().split(" "); //转小写,分割 ...

  10. python单词首字母大写_在Python中将每个单词的首字母大写

    python单词首字母大写 Here, we are implementing a python program to capitalizes the first letter of each wor ...

最新文章

  1. Builder建造者设计模式
  2. Luy 1.0 :一个React-like轮子的诞生
  3. MySQL INSERT的4种形态
  4. Mac电脑如何添加管理员账户?
  5. UCC国际洗衣:风雨26年,铸就干洗行业实力品牌
  6. 如何从右键弹出菜单中清空删除数据加清空前提问确定
  7. char数组打印地址和内容;
  8. python写微信公众号文章_Python爬取微信公众号文章
  9. linux 中压缩文件夹命令行,Linux 文件夹 压缩 命令
  10. 几部科幻小说的评价和感想
  11. 怎么才能做好一套软件系统
  12. 图片和字符串相互转换
  13. STM32CubeMX+SPI+FATFS读写SD卡
  14. go: no such tool “compile“(一次糟糕体验)
  15. 大众点评搜索相关性技术探索与实践
  16. 如何科学应对宝宝秋季腹泻?
  17. 区块链真的能保护隐私吗?
  18. STM32-F407入门学习专题(四) STM32外设之USART
  19. ORA-01157 cannot identify/lock data file n 故障一例
  20. Do not use “// @ts-ignore“ because it alters compilation errors问题的处理

热门文章

  1. 计算机窗口中如何移动文件,简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
  2. Underscore源码阅读极简版入门
  3. http协议(一)/应用层
  4. h5模型转化为pb模型,代码及排坑
  5. python 轨迹 车辆_ArcGIS+ArcPy制作船舶(车辆)轨迹热力图
  6. 嵌入式系统工程师的职位要求,你还差多少?
  7. solaris 的ZFS操作
  8. Java implements和extends的区别
  9. SpringBoot2.0学习笔记 使用Actualor监控项目运行状态
  10. UCOSIII-任务管理(上)