请教:函数内部的指针可以传递吗?
#include <stdio.h> /*题目要求,输入不多于10个字符串,按字符串第一个单词长度排序,输出字符串,用函数解决*/#include<ctype.h>
#include<string.h>
#define SIZE 80
#define LEF 10
void dcpx( char *s1[], int n);
int main(void)
{
char arry[LEF][SIZE];
char *ptstr[LEF];
int i=0;
printf("请输入字符串1是:\n");
while(i<LEF&&gets(arry[i])!=NULL&&arry[i][0]!='\0')
{
ptstr[i]=arry[i]; /*输入字符串*/
i++;
}
printf("请输字符串是:\n");
dcpx(ptstr,i);
return(0);
}
void dcpx( char *s1[], int n)
{
char *s[LEF];
int dc[LEF]; /*统计单词长度数组*/
int i=0;
char *temp;
int top,seek;
while(n>0) /*是这里不对吗?请大家帮忙指点一二,小弟对指针还在学习中,本来开始没有用这段的,可是输出的
字符串是单词结束的位置开始输出*/
{
s[i]=s1[i];
n--;
}
for(i=0;i<n;i++)
{
dc[i]=0;
while(!isspace(*s[i])) /*统计每个字符串的第一个单词的长度*/
{
if(!isspace(*s[i]))
dc[i]++;
s[i]++;
}
}
for(top=0;top<n-1;top++) /*比较单词长度,交换字符串指针*/
for(seek=top+1;seek<n;seek++)
if(dc[top]>dc[seek])
{temp=s1[top];s1[top]=s1[seek];
s1[seek]=temp;
}
for(i=0;i<n;i++)
puts(s1[i]);
}