C //例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。

C程序设计 (第四版) 谭浩强 例10.3

例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。

 

代码块
方法:使用指针,函数的模块化设计,动态分配内存
说明:这里准备先写入的文件名称为Test.txt,文件已经存在于该项目目录下。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define M 3
#define N 80//初始化所需变量
void initialVar(char ***str, int m, int n, char **name){*str = (char**)malloc(m * sizeof(char*));for(int i = 0; i < m; i++){(*str)[i] = (char*)malloc(n * sizeof(char));}*name = (char*)malloc(n * sizeof(char));
}//输入字符串
void inputStr(char **str, int m){printf("Enter %d Strings:\n", m);for(int i = 0; i < m; i++){printf("Enter No.%d Strings: ", i + 1);gets(str[i]);}printf("\n");
}//对字符串进行升序排列
void ascendingSortStr(char **str, int m, int n){char *temp = (char*)malloc(n * sizeof(char));for(char **p = str; p < str + m; p++){for(char **q = p + 1; q < str + m; q++){if(strcmp(*p, *q) > 0){strcpy(temp, *p);strcpy(*p, *q);strcpy(*q, temp);}}}free(temp);
}//输入文件名称
void inputFileName(FILE **file, char *name){printf("Enter File Name: ");scanf("%s", name);*file = fopen(name, "r");if(*file == NULL){perror("Cannot open this file");system("pause");exit(0);}*file = fopen(name, "w+");
}//将字符串写入文件
void inputFile(FILE **file, char **str, int m){for(int i = 0; i < m; i++){fputs(str[i], *file);fputs("\n", *file);printf("%s\n", str[i]);}fclose(*file);putchar(10);
}//释放分配变量的内存
void freeVar(char ***str, int m, char **name){for(int i = 0; i < m; i++){free((*str)[i]);}free(*str);free(*name);
}int main(){FILE *file = NULL;char **str = NULL;char *name = NULL;initialVar(&str, M, N, &name);inputStr(str, M);ascendingSortStr(str, M, N);inputFileName(&file, name);inputFile(&file, str, M);freeVar(&str, M, &name);system("pause");return 0;
}
运行结果如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/258289.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HttpComponents: 领域对象的设计

1. HTTP协议 1.1 HTTP请求 HTTP请求由请求头、请求体两部分组成&#xff0c;请求头又分为请求行(request line)和普通的请求头组成。通过浏览器的开发者工具&#xff0c;我们能查看请求和响应的详情。 下面是一个HTTP请求发送的完整内容。 POST https://track.abc.com/v4/tr…

c语言怎么“简单”表示9个变量互不相等?

c语言怎么“简单”表示9个变量互不相等? 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「C语言从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&#xff0…

第二次上机测试:Javascript. (第一组)

需求&#xff1a;&#xff08;注意在规定的时间&#xff0c;在自己的博客提交作品&#xff0c;便于统计测试的完成情况。博客题目《第二次上机测试&#xff1a;Javascript.》&#xff09; 1、点击按钮&#xff0c;将图片加上边框 2、点击按钮&#xff0c;将图片缩小为长和宽都…

服务器配置免密SSH

在当今互联网时代&#xff0c;远程工作和网络安全已成为信息技术领域的热点话题。无论是管理远程服务器、维护网络设备还是简单地从家中连接到办公室&#xff0c;安全始终是首要考虑的因素。这就是为什么 SSH&#xff08;Secure Shell&#xff09;成为了网络专业人士的首选工具…

这把养生局~

查看原文请移步~ &#x1f308;9款好喝解腻水果茶 ✅苹果热橙茶 苹果橙子柠檬红茶冰糖 ✅金桔话梅乌龙茶 柠檬话梅金桔乌龙茶冰糖 ✅柠檬百香果乌龙茶 橙子柠檬百香果乌龙茶冰糖 ✅港式柠檬茶 柠檬青柠红茶冰糖 ✅山楂苹果消食茶 山楂苹果红茶冰糖 ✅桂圆热红茶 桂圆红茶冰糖 …

Java第二十一章

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封装成不同的类&#xff0c;用户只要创建这些类的对象&#xff0c;使用相应的方法&#xff0c;即使不具备有关的网络支持&#xff0c;也可以编写出高质量的网络通信程序。 …

C++基础 -42- STL库之list链表

———————STL库之list链表——————— &#x1f384; list链表的格式(需要定义头文件) list<int> data1(4, 100);list<int> data2(4, 500);&#x1f384;list链表的合并接口 &#x1f384;举例使用合并接口并且验证 data2.merge(data1);list<int>::…

细粒度视觉分类的注意内核编码网络

Attentional Kernel Encoding Networks for Fine-Grained Visual Categorization 1、介绍2、方法2.1 卷积模块2.2 级联注意力模块2.3 内核编码模块2.4 整体 3、结论 在本文中&#xff0c;我们提出了一种用于细粒度视觉分类的注意核编码网络(AKEN)。具体来说&#xff0c;AKEN聚合…

vue pc官网顶部导航栏组件

官网顶部导航分为一级导航和二级导航 导航的样子 文件的层级 router 文件层级 header 组件代码 <h1 class"logo-wrap"><router-link to"/"><img class"logo" :src"$config.company.logo" alt"" /><i…

【计算机毕业设计】java网上服装商城销售系统springboot+jsp

目前互联网上的网上销售系统每天以惊人的速度增加&#xff0c;网上购物越来越成为现代年轻人的首选&#xff0c;足不出门便能选购好自己称心如意的商品。基于Java术及MySQL数据库设计与实现一个网上服装销售系统&#xff0c;要求实现用户管理、服装管理、新闻公告管理、留言管理…

虾皮关键词广告怎么选

在虾皮&#xff08;Shopee&#xff09;平台上&#xff0c;关键词广告是提高商品曝光度和销量的有效手段。然而&#xff0c;选择合适的关键词对于广告效果至关重要。本文将为您提供一些建议&#xff0c;帮助您选择适合虾皮关键词广告的关键词。 先给大家推荐一款shopee知虾数据…

PyTorch2.0环境搭建

一、安装python并配置环境变量 1、打开python官网&#xff0c;下载并安装 Welcome to Python.org 下载 寻找版本&#xff1a;推荐使用3.9版本&#xff0c;或其他表中显示为安全&#xff08;security&#xff09;的版本 安装&#xff1a;&#xff08;略&#xff09; 2、配置环…