用C语言对单词首字母进行排序,c语言单词排序
满意答案
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语言单词排序相关推荐
- 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】
编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...
- C语言编写取单词首字母,C语言练习之单词首字母大写
/* *Copyright(c) 2016,烟台大学计算机学院 *All rights reserved. *作 者:刘金石 *完成日期:2016年4月22日 *版本 号:v1.0 *问题描述:字符串 ...
- c语言 单词首字母大写
单词首字母大写 编写程序,输入一行字符,将每个单词的首字母改为大写后输出.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式 输入给出一行字符 ...
- 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...
Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...
- 修改完 字符串单词首字母大写
/** * */ package excelOperation; /** * 该方法的主要作用是将EXCEL表中英文字符串的单词首字母转换为大写 */ import java.awt.Fram ...
- CSS实现英文或拼音单词首字母大写
CSS实现英文或拼音单词首字母大写,只需要在css样式中加入: text-transform: capitalize 即可. 测试代码如下: <!doctype html> <htm ...
- 关于JS阶乘,首字母大写,最长单词计算,重复说话次数等简单基础算法练习...
(1)阶乘问题. <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...
- 句子中单词首字母大写转换
//函数将句子中的每个单词的首字母改为大写 string first_letter(string& sentence) {//定义string 指针,并指向string 首地址string:: ...
- 前端-给定一个字符串str,如何实现每个单词首字母都大写,其余部分小写。
确保字符串的每个单词首字母都大写,其余部分小写. function f(str){ var arr = str.toLowerCase().split(" "); //转小写,分割 ...
- python单词首字母大写_在Python中将每个单词的首字母大写
python单词首字母大写 Here, we are implementing a python program to capitalizes the first letter of each wor ...
最新文章
- Builder建造者设计模式
- Luy 1.0 :一个React-like轮子的诞生
- MySQL INSERT的4种形态
- Mac电脑如何添加管理员账户?
- UCC国际洗衣:风雨26年,铸就干洗行业实力品牌
- 如何从右键弹出菜单中清空删除数据加清空前提问确定
- char数组打印地址和内容;
- python写微信公众号文章_Python爬取微信公众号文章
- linux 中压缩文件夹命令行,Linux 文件夹 压缩 命令
- 几部科幻小说的评价和感想
- 怎么才能做好一套软件系统
- 图片和字符串相互转换
- STM32CubeMX+SPI+FATFS读写SD卡
- go: no such tool “compile“(一次糟糕体验)
- 大众点评搜索相关性技术探索与实践
- 如何科学应对宝宝秋季腹泻?
- 区块链真的能保护隐私吗?
- STM32-F407入门学习专题(四) STM32外设之USART
- ORA-01157 cannot identify/lock data file n 故障一例
- Do not use “// @ts-ignore“ because it alters compilation errors问题的处理
热门文章
- 计算机窗口中如何移动文件,简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
- Underscore源码阅读极简版入门
- http协议(一)/应用层
- h5模型转化为pb模型,代码及排坑
- python 轨迹 车辆_ArcGIS+ArcPy制作船舶(车辆)轨迹热力图
- 嵌入式系统工程师的职位要求,你还差多少?
- solaris 的ZFS操作
- Java implements和extends的区别
- SpringBoot2.0学习笔记 使用Actualor监控项目运行状态
- UCOSIII-任务管理(上)