taiyang2014

strcpy,strlen, strcat, strcmp函数,strlen函数和sizeof的区别

 //计算字符串实际长度
        //strlen()函数:当遇到'\0'时,计算结束,'\0'不计入长度之内,如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止
//    char string[] = "I Love You!";
//    unsigned long len = strlen(string);
//    printf("len = %lu\n", len);  //11
//    
//    string[2] = '\0';
//    unsigned long len1 = strlen(string);
//    printf("len1 = %lu\n", len1);    //2
//sizeof  sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。

//sizeof()返回的是unsigned long

 //数组所占空间大小 = 数组元素个数 * sizeof(数组类型)


        //字符串的拷贝
        //strcpy(字符串1,字符串2);
        //把字符串2中从一个元素到一个'\0'(包括'\0')的字符串,拷贝到字符串1(CNG字符串1的第一个元素开始)
        //注意:如果做拷贝,字符串1应该足够大,否则会越界
    char string[100] = "I Love";
    char string1[10] = "You";
    
    strcpy(string, string1);
    printf("%s\n", string);    //you
    
    
    string1[1] = '\0';
    printf("%s\n", string);  //you
        //字符串的拼接
        //strcat(字符串1,字符串2)
        //把字符串2从第一个元素到第一个'\0'(包括'\0')的字符串,拼接到字符串1的第一个'\0'(从'\0'开始)后面
        //字符串一定要足够大
//    char string[100] = "I Love ";
//    char string1[10] = "You";
//    
//    string[3] = '\0';
//    
//    strcat(string, string1);
//    printf("%s ", string);    //I LYou
    
        //字符串的比较
        //strcmp(字符串1, 字符串2)
        //0:表示两个字符串相等
        //用字符串1的每一个元素和字符串2对应的元素做比较(字符串1元素的ASICC值 - 对应字符串2元素的ASICC值),当比较的结果不为0时,结束,或者当两个字符串对应的元素都为'\0'时,结束.
//    char string[] = "iPhone 6A";//完全相同返回0
//    char string1[] = "iPhone 6B";//返回1
//    int result = strcmp(string, string1);
//    printf("%d", result);    //-1

 

posted on 2015-03-02 10:57  taiyang2014  阅读(333)  评论(0编辑  收藏  举报

导航