第08天C语言(06):字符串-常用方法2

一、概念
/*
 #include 
 1.字符串拼接
    原理 : 首先遍历第一个字符串,知道遇到\0,然后取出第二个字符串中的字符,从\0的位置开始添加
 
    strcat函数 strcat(dest, src) --- 将src中的数据 拼接到dest后面
      注意 : 要想使用字符串的拼接 函数,那么dest必须是一个数组,并且数组的长度 必须大于拼接之后的长度 (str必须足够长)
      如果dest的数组的长度,不能完全 存放dest+scr+\0 那么就会报错
    strncat函数 strncat(dest, src, len) ---  char * 相当于 dest chost char * 相当于 scr size_t 需要拼接的个数
 
 2.字符串拷贝
    strcpy函数 strcpy(dest, src) --- char * 目标 , const char * 源
     strcpy函数会将 源的数据拷贝到目标中, 并且会覆盖目标中原有的数据
      目标的容器必须 能够存放 拷贝的数据,如果容器 不够就会报错
         strcpy(str1, str2);
 
    strncpy函数 strncpy(dest, src, len)
        拷贝操作 是逐个替换, 拷贝了几个 就替换几个
        str1 能够存放元素的个数 - \0
 
 3.字符串比较
    strcmp的原理 : 取出字符串中的每一个字符 进行逐个比较, 如果发现不相等 就不会继续往下 比较
    如果该值 等于0, 那么证明 两个字符串相等
    如果该值 小于0, 那么证明 str 小于 str2
    如果该值 大于0, 那么证明 str 大于 str2
 */
二、代码
#include 
#include 
int main()
{
#pragma 1.字符串拼接 (strcat \ strncat)
    // 原理 : 首先遍历第一个字符串,知道遇到\0,然后取出第二个字符串中的字符,从\0的位置开始添加
    
//    char str1[7] = "lyh";
//    char str2[10] = " cool";
    // strcat(dest, src)
    // dest src
    // 目标 源
    // 将src中的数据 拼接到dest后面
    // 注意 : 要想使用字符串的拼接 函数,那么dest必须是一个数组,并且数组的长度 必须大于拼接之后的长度 (str必须足够长)
    // 如果dest的数组的长度,不能完全 存放dest+scr+\0 那么就会报错
//    strcat(str1, str2);
    
    // strncat(dest, src, len)
    // char * 相当于 dest chost char * 相当于 scr size_t 需要拼接的个数
    // 为了避免 拼接之后超出str1的存储范围, 那么可以动态计算str需要拷贝几个到str1后面不会超出
    
    // str能够存放的元素个数 - str已经存放的个数 - \0
    /*
    size_t length = sizeof(str1) / sizeof(str1[0]) - strlen(str1) - 1;
//    strncat(str1, str2, 2);
    strncat(str1, str2, length);
    printf("拼接后 %s\n",str1);
    */
    
#pragma 2.字符串拷贝
    //
    /*
    char str1[4] = "lyh";
    char str2[10] = "cool";
    printf("拷贝前 %s\n",str1);
    // strcpy(dest, src)
    // char * 目标 , const char * 源
    // strcpy 函数会将 源的数据拷贝到目标中, 并且会覆盖目标中原有的数据
    // 目标的容器必须 能够存放 拷贝的数据,如果容器 不够就会报错
//    strcpy(str1, str2);
    
    // char * 相当于 dest chost char * 相当于 scr size_t 需要拷贝几个
    // 注意 : 拷贝操作 是逐个替换, 拷贝了几个 就替换几个
    //           str1 能够存放元素的个数 - \0
    size_t length = sizeof(str1) / sizeof(str1[0]) -1;
    printf("length = %li\n",length);
    strncpy(str1, str2, length);
    printf("拼接后 %s\n",str1);
    */

    
#pragma 3.字符串比较
    char str1[] = "abb";
    char str2[] = "abc";
    
    // strcmp  它会对传入的字符串 进行比较, 比较完毕之后 ,会返回一个整型的值 给我们
    // 如果该值 等于0, 那么证明 两个字符串相等
    // 如果该值 小于0, 那么证明 str 小于 str2
    // 如果该值 大于0, 那么证明 str 大于 str2
    // strcmp的原理 : 取出字符串中的每一个字符 进行逐个比较, 如果发现不相等 就不会继续往下 比较
    int res = strcmp(str1, str2);
    printf("res = %i\n",res);
    
    return 0;
}

你可能感兴趣的:(第08天C语言(06):字符串-常用方法2)