怎么用**P来输入几个字符串而存在一个*array[]的数组里呢?
我本来是这样想的 可是不对
#include<stdio.h>
void main()
{
char *array[];
char **p;
int i;
for (i=0;i<3;i++)
{
p=array+i;
scanf("%s",p);
}
for (i=0;i<3;i++)
{
p=array+i;
printf("%s\n",*);
}
}
我指针学的还不好 还请大家告诉我怎么用!
----------------解决方案--------------------------------------------------------
是在输入那里的问题!
可是不知道怎么改啊 !
----------------解决方案--------------------------------------------------------
*array[]是一个指针数组,不是让你随便存放东西的.....
----------------解决方案--------------------------------------------------------
那该怎么做呢??
10.2输入 3个字符串,按由小到大的顺序输出.
----------------解决方案--------------------------------------------------------
输入 3个字符串,按由小到大的顺序输出.
字符串排序吗?
----------------解决方案--------------------------------------------------------
是啊 就是这样 我想给它存进一个数组,可是作不到啊
----------------解决方案--------------------------------------------------------
/*进行字符串排序的函数*/
void strArray(char **p)
{
//具体实现
}
//主函数
int main(void)
{
char *array[3];
int i;
//输入
for(i=0;i<3;i++)
scanf("%s",array[i]);
//排序
strArray(array);
//输出
for(i=0;i<3;i++)
printf("%s\n",array[i]);
getch();
}
----------------解决方案--------------------------------------------------------
谢谢拉!
----------------解决方案--------------------------------------------------------
我是这么做的,请多提意见!
#include<stdio.h>
#include<string.h>
void sort(char x[],char y[],char z[]);
void main()
{
char b[20],c[20],d[20];
char *a[20]={b,c,d};
gets(b);
gets(c);
gets(d);
char **p;
int i;
sort(b, c, d);
for (i=0;i<3;i++)
{
p=a+i;
printf("%s\n",*p);
}
}
void sort(char x[],char y[],char z[])
{
char array[20];
if (strcmp(x, y)>0)
{strcpy(array, x);strcpy(x, y);strcpy(y, array);}
if (strcmp(y, z)>0)
{strcpy(array, y);strcpy(y, z);strcpy(z, array);}
if (strcmp(x, z)>0)
{strcpy(array, x);strcpy(x, z);strcpy(z, array);}
}
----------------解决方案--------------------------------------------------------
我觉得aiyuheng做得比神vLinux飘飘要好,因为scanf()读取的字符串不能包含空格、制表符。就是说如果你的字串里有空格的话,那读入的就不是一个完整的字串。
gets()的优点就是直至回车的字符串都将读取(不包含回车)。
----------------解决方案--------------------------------------------------------