使用指针数组作为函数参数,实现对10个字符串进行排序
1.输入
lisi
hahaha
hehehe
helloa
leihoua
lisi
nihaoa
wangwu
ajax
bureau
2.输出
ajax
bureau
hahaha
hehehe
helloa
leihoua
lisi
lisi
nihaoa
wangwu
3.程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int i;
char str[10][32];
char *pstr[10];
for (i = 0; i < 10; i++)
{
//pstr[i] = str[i];
*(pstr + i) = *(str + i);
//scanf("%s", pstr[i]);
scanf("%s", *(pstr+i));//捕捉字符串到第i个子数组中
}
void str_sort(char **str,int n);
str_sort(pstr,10);
printf("----------------\n");
for (i = 0; i < 10; i++)
{
printf("%s\n", *(str + i));
}
printf("----------------\n");
for (i = 0; i < 10; i++)
{
//printf("%s\n", pstr[i]);
printf("%s\n", *(pstr + i));
}
}
void str_sort(char **str,int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n -1 - i; j++)
{
//if (strcmp(str[j], str[j+1]) > 0)
if(strcmp(*(str+j),*(str+j+1))>0)
{
//char temp[32];
/*strcpy(temp, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], temp);*/
char* temp = *(str + j);
*(str + j) = *(str + j + 1);
*(str + j + 1) = temp;
}
}
}
}