📄 main.c
字号:
#include <stdio.h>
//#include "qsort.h"
#include "q_sort.h"
#include "cmpnum.h"
#include "cmpstring.h"
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
extern char *optarg;
extern int optind;
extern int optopt;
extern int opterr;
extern int optreset;
int getopt(int argc, char * const *argv, const char *optstring);
char* base[100];
size_t read_in(){
char c;
char arr[100];
int i=0,size=0;
while ((c = getchar()) != 0x00A)
{
if(c!=0x020){
arr[i]=c;i++;}
else if(c==0x020 && i!=0){
arr[i]='\0';
base[size]=malloc(i+1);
strcpy(base[size],arr);
i=0;
size++;}
}
return size;
};
int main(int argc, char *argv[]) {
int sflag=0, nflag=0, rflag=0;
int ch;
//opterr = 0;
while ((ch = getopt(argc, argv, "snr")) != -1)
{
switch (ch) {
case 's':
printf("string sort\t");
sflag = 1;
break;
case 'n':
printf("num sort\t");
nflag = 1<<0x1;
break;
case 'r':
printf("reverse sort\t");
rflag = 2<<0x1;
break;
case '?':
printf("Unknown option: %c\n",(char)optopt);
break;
}
}
int flag=sflag | nflag | rflag;
size_t size;
int i=0;
switch(flag){
case 0://????????
printf("string sort\t");
case 1://?????
printf("enter:\n");
size = read_in();
q_sort(&base, size, sizeof(char *), cmpstring);
for (i=0; i < size; i++)
printf("%s\n", base[i]);
break;
case 4://?????,????
printf("string sort\t");
case 5://????????,????
printf("enter:\n");
size = read_in();
q_sort(&base, size, sizeof(char *), cmpstring);
for (i=size-1; i >=0; i--)
printf("%s\n", base[i]);
break;
case 2://???????????(?????)??
printf("enter:\n");
size = read_in();
q_sort(&base, size, sizeof(char *), cmpnum);
for (i=0; i < size; i++)
printf("%s\n", base[i]);
break;
case 6://???????????(?????)??,????
printf("enter:\n");
size = read_in();
q_sort(&base, size, sizeof(char *), cmpnum);
for (i=size-1; i >=0; i--)
printf("%s\n", base[i]);
break;
default://????
printf("error option!\n");
break;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -