在主函数中输入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++)
{
printf("%s\n",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+j),*(str+i)<0)
{
temp = *(str+j);
*(str+j) = *(str+i);
*(str+i) = temp;
}
}
}
}
下面的与这个真是大同小异还是它的反面词呢?
#include<stdio.h>
#include<string.h>
void func(achar **arr,int size);
int main()
{
char *arr[6];
int i;
//输入6个字符串
for(i=0;i<6;i++){
arr[i]=(char*),alloc(30);
scanf("%s",arr[i]);
}
func(arr,6);//调用函数
for(i=0;i<6;i++){
printf("%s",arr[i]);
}
for(i=0;i<6;i++){
free(arr[i]);
}
return 0;
}
void func(qchar **arr,int size)
{
int i,j;
char *temp;
for(i=0;i<size-1;i++)
{
for(j=i+1;j<size;j++){
if(strcmp(arr[i]),arr[j]>0)
//如果第i个字符串>第j个字符串,则交换
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=tem[;]
}
}
}
}