命令行处理程序
/*
命令行选项
*/
#include <stdio.h>
#include<string.h>
int main(){
char a[25][10]={0},b[15][10]={0},s[255]={0};
//a储存分割后的每一部分,最多25个部分,每部分最长10个字符
//b储存提取的选项,最多15个选项,每个选项最长10个字符
int c=0,f=0,h=0,flagg=0,kkk=0,flag=1;
gets(s);
int len=strlen(s);
for(int i=0;i<len;i++){
if(s[i]==32){ //判断s字符串的第i个字符是不是0,32是ASCII码表中的空格
kkk=kkk+1; //kkk用于记录当前处理到的部分数量
h=0; //h用于记录当前部分的字符位置
}
else{
a[kkk][h]=s[i];
h=h+1;
}
}
for(int i=0;i<kkk;i++){
if(a[i][0]!='-'){
continue;
}
else{
flagg=1;
flag=0;
for(int j=0;j<f;j++){
if(strcmp(a[i],b[j])==0){
flag=1;
break;
}
}
if(flag==0){
strncpy(b[f],a[i],10);
f=f+1;
}
}
char t;
if(flagg==0){
printf("No!");
}
else{
for(int i=0;i<f-1;i++){
for(int j=i+1;j<f;j++){
if(b[i][1]>b[j][1]){
t=b[i][1];
b[i][1]=b[j][1];
b[j][1]=t;
}
}
}
for(int i=0;i<f;i++){
for(int j=0;b[i][j]!=0;j++){
printf("%s",b[i]);
}
printf(" ");
}
}
}
}