用指针数组输入三个字符串,将三个字符串排序后输出,不知道哪一步搞错了,输不出来了
你需要申请内存 请参考
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void sort(char* a[])
{
char* temp=NULL;
int i, j;
for (i = 0;i < 3;i++)
{
for (j = i + 1;j < 3;j++)
{
if (strcmp(a[i], a[j]) > 0)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
int main()
{
int i;
char* a[3];
for (i = 0;i < 3;i++)
{
printf("请输入第%d个字符串", i + 1);
a[i] = (char*)malloc(sizeof(char) * 10);//申请10个长度空间
scanf("%s",a[i]);
}
sort(&a);
for (i = 0;i < 3;i++)
{
printf("%s\n", a[i]);
}
return 0;
}
(1)输入字符串scanf里面不用写&;
(2)看你的样子好像是想把多个字符串存在一个字符数组里,这样不行的。