输入n个字符串,并对这些字符串排序。
#include <stdio.h>
#include <string.h>
main()
{
void sort(char *b[],int m);
char *a[20];
int i,n;
printf("input n:"); //n表示需要输入多少个字符串
scanf("%d",&n);
printf("input these string:"); //假设n=3时,从代码上看应该是输入3个字符串,但 程序实际执行时能输入4个字符串,为什么会这样?能解释下吗?
for(i=0;i<n;i++)
scanf("%s\n",a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("now the string is:%s\n",a[i]);
}
void sort(char *b[],int m) //字符串排序
{
int j,i;
char *temp;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
if(strcmp(b[i],b[j])<0)
{ temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
以上的程序能够运行,但还有一些疑问不明白(运行环境是tc):
1、见程序中的红色字体
2、上述程序对输入的字符串有长度限制,请问怎样做能对输入的字符串长度没有限制?望给出代码
3、上述程序对输入的字符串有长度限制,如果输入的字符串超出了长度限制,应该如何处理才能使程序不出错且不影响程序继续执行,望给出代码
[此贴子已经被作者于2007-6-4 14:49:06编辑过]