名花有主,我欲移花接木
在主函数中输入6个字符串,调用另一个函数func对他们按从小到大的顺序排序,然后输出这已经排好序的字符串。
使用指针数组进行处理。
#include <stdio.h>
#include <string.h>
void func(char **str);
int main(void)
{ int i;
char s[6][1024], *pStr[6];
for (i=0; i<6; i++)
{
gets(s[i]);//输入字符串
pStr[i] = s[i];//将数组地址赋予指针
}
func(pStr);//调用函数,由小到大移动字符串
//输出排序后的结果
for (i=0; i<6; i++)
{puts(pStr[i]);
}
return 0;
}
void func(char **str)//定=定义移动函数
{
int i, j;
char *temp;
for (i=0; i<5; i++)
{
for (j=i+1; j<6; j++)
{
if (strcmp(str[i],str[j])>0)//从库中,调用比较函数,若左边字符串大于右边,则结果大于0,若大于0,字符串互换
{
temp = *(str+j);
*(str+j) = *(str+i);
*(str+i) = temp;
}
}
}
}