做网站公司名字,wordpress 无法创建页面,国外知名网站,v2ray wordpressC程序设计 #xff08;第四版#xff09; 谭浩强 例10.3
例10.3 从键盘读入若干个字符串#xff0c;对它们按字母大小的顺序排序#xff0c;然后把排好序的字符串送到磁盘文件中保存。
IDE工具#xff1a;VS2010
Note: 使用不同的IDE工具可能有部分差异。 代码块
方法…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;
}运行结果如下