北京北太平庄派出所:C语言刚学不会

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 01:13:16
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
puts(cs[i]);}printf("\n");
}
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) { p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
if(strcmp(cs[j],st)<0)这一句的意思?????是哪个大才是<????

字符串比较函数strcmp 格式: strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。
本函数也可用于比较两个字符串常量,或比较数组和字符串常量。

strcmp(cs[j],st)
比较cs[j]与st的大小
当cs[j]<st的时返回为负数
当cs[j]>st的时返回为正数
当cs[j]=st的时返回为0

int strcmp(char *string1,char *string2)
函数是用来专门比较两个字符串的!
返回一个整型数!字符串比较不能用关系运算符<,><=,>=,==,!=
应该是:
strcmp(str1,str2)<0
strcmp(str1,str2)>0
strcmp(str1,str2)<=0
strcmp(str1,str2)>=0
strcmp(str1,str2)==0
strcmp(str1,str2)!=0

strcmp(char *s1, char *s2) :
按照各个字符(ascii)比较s1和s2,
1.相等则返回0,
2.否则返回ascii相减的结果