知识点C++

比较2个字符串的大小……
s1=s2,strcmp(s1,s2) == 0;
s1>s2, strcmp(s1,s2) == 1;
s1<s2, strcmp(s1,s2) == -1;

 

strcmp是字符串比较函数,作用是比较字符串1和字符串2
如:strcmp(str1,str2);
  strcmp("china","korea");
比较的结果由函数带回。
(1)如果字符串1=字符串2,函数值为0。
(2)如果字符串1〉字符串2,函数值为一正整数
(3)如果字符串1<字符串2,函数值为一负整数

具体程序的例子:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

void main()
{
        char a[50],b[50];
    
        printf("请输入字符串a: \n");
        gets(a);
        printf("请输入字符串b: \n");
        gets(b);

        if(strcmp(a,b)>0)
            printf("a>b");
        else if(strcmp(a,b)<0)
            printf("a<b");
        else if(strcmp(a,b)==0)
            printf("a==b");
        
        system("pause");
}
strcmp(s1,s2) 对两个字符串进行比较,逐一比较字符的ascii码,a为97,A为65 所以a>A;分出大小后面不再比较; 
如果s1>s2,返回1; 
如果s1=s2,返回0; 
如果s1<s2,返回-1
跟字符串的长度无关的.
就是从两个字符串的头开始比.相应位的字符进行对比.实际上是比较相应位字符的ASCII码大小.
如char *s1="abc";
char *s2="bd";
执行strcmp(s1,s2),其结果是负的.
从两个字符串的头开始比,因为字符串s1中的'a'小于s2中的'b'所以s1<s2;
再如:
char *s1="abc";
char *s2="ad";
其结果也是负的,因为s1中的'b'<s2中的'd'
再如:
char *s1="abc";
char *s2="ab";
其结果就是正的.因为s1中的'c'大于s2中的'\0';因为字符串的最后一个字符是\0;
再如:
char *s1="abc";
char *s2="abcd";
其结果是负的.因为s1中的'\0'小于s2中的'd';

 

 

posted @ 2013-07-09 18:34  herizai  阅读(324)  评论(0编辑  收藏  举报