int?split_str(char*?str)//get?那個?數數?的?線
{
int?數數?=?1;
int?旗幟?=?0;
while(*str!='\0')
{
if(*str?==?'?'?& amp& amp?旗幟?==?1)
{
count++;
旗幟?=?0;
}?
不然呢?if(*str?!='?'?& amp& amp?*str?!=?'\0')
{
旗幟?=1;
}
str++;
}
回歸?(算嗎?==?1?0?:?計數);
}
//?回歸?-1?什麽時候?str1?是嗎?null?還是?str1?是嗎?垃圾?比?str2
//?回歸?1?什麽時候?str2?是嗎?null?還是?str2?是嗎?垃圾?比?str2
//?回歸?0?什麽時候?str1?是嗎?平等?作為?str2
int?compare_str(char*?str1,?char*?str2)
{
if(str1?==?0)?回歸?-1;
如果(str2?==?0)?回歸?1;
什麽時候?(?*str1?& amp& amp?*str2)
{
if(*str1?& gt?*str2)
{
回歸?1;
}
不然呢?如果?(*str1?& lt?*str2)
{
回歸?-1;
}
str 1++;
str 2++;
}
if(*str1?& gt?*str2)
{
回歸?1;
}
不然呢?如果?(*str1?& lt?*str2)
{
回歸?-1;
}
回歸?0;
}
作廢?主()
{
夏爾?str[200]= { 0 };
gets(str);
int?n?=?split _ str(str);
如果(n?& lt?1)
{
printf("輸入?錯誤!\ n ");
回歸?-1;
}
//printf("n=%d\n ",n);
char*?a[n];//保存?指針?地址
int?我;
for(I = 0;我& ltn;i++)//init?那個?指針?排列
a[I]= 0;
int?指數?=?0;
int?旗幟?=?0;
for(I = 0;我& lt200?||?!str[I];i++)
{
if(str[i]?!=?'?'?& amp& amp?旗幟?==?0)
{
a[index++]?=?& ampstr[I];
旗幟?=?1;
}
不然呢?if(str[i]?==?'?')
{
旗幟?=?0;
str[I]= ' \ 0 ';
繼續;
}
}
int?j;
for(I = 0;我& ltn;i++)
for(j = I+1;j & ltn;j++)
如果(1?==?compare_str(a[i],?a[j])
{
char*?tmp
tmp?=?a[I];
甲[我]?=?a[j];
a[j]?=?tmp
}
for(I = 0;我& ltn;i++)
printf("%s\n ",a[I]);
}