C语⾔--strcmp()函数
strcmp函数是string compare(字符串⽐较)的缩写,⽤于⽐较两个字符串并根据⽐较结果返回整数。基本形式为strcmp(str1,str2),若
str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
⾸先说明strcmp的使⽤格式:c++中string的用法
strcmp(char1 *, char2 *);
该函数功能是:从第⼀个元素开始,依次⽐较字符串数字char1和char2,如果char1的第n个元素⽐char2d的第n个元素⼤,则返回值为⼤于0 的数,相反的话,则返回⼩于0的数,如果相等,则继续⽐较 n+1个元素,直到第n+1个不相等,就停⽌⽐较,并返回相应的值。(注意:char1 *这⾥实际放的是⼀个指针,字符数组名实际就是⼀个常量指针)
举例:
char name_1[10]={"zhangsan"}; name_2[10]={"zhaoliu"};
syrcmp(name_1,name_2);
⽐较的结果是:因为“z”“h”“a”都相等,所以继续⽐较第四个元素“n” 和“o”;⽐较⾄此,已经有返回值了,所以停⽌后边的⽐较,并返回相应的值。
应⽤实例;按照字母从⼩到⼤输出姓名
char name[5][20]={"zhangsan","lisi","wangwu","zhaoliu","any"};
//k控制⽐较的趟数
for(int k=0; k<5;k++){
//i控制⽐较的第⼀维空间
for (int i = 0; i<4; i++) {
//j控制每个姓名的第j个字母
for (int j = 0; j<20; j++) {
//利⽤strcmp 函数⽐较字母⼤⼩
if (strcmp(&name[i][j], &name[i+1][j])>0) { //使⽤&的原因是:字符数组名的本质是⼀个指针,指向⼀个地址。在这⾥使⽤&取某⼀个元素的地址。
char temp[20];
strcpy(temp, name[i]);
strcpy(name[i], name[i+1]);
strcpy(name[i+1], temp);
}
//交换结束后,停⽌本组名字的继续⽐较,进⾏下⼀个名字的⽐较
break;
}
}
}
for (int i = 0; i < 5; i++) {
printf("%s\n",name[i]);
}
//运⾏结果
any
lisi
wangwu
zhaoliu zhangsan
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论