• strncpy,strncat,strncmp字符串函数详解(长度受限制)


    目录

    一,strncpy函数

    1,strncpy函数简介

    2,strncpy函数示例 

    3,注意事项

    二,strncat函数

    1,strncat函数简介

    2,strncat函数示例 

    3,注意事项

    三,strncmp函数

    1,strncmp函数简介

    2,strncmp函数示例 

    3,注意事项


    一,strncpy函数

    1,strncpy函数简介

    strncpy函数用于将一个字符串的一部分复制到另一个字符串中。

    🍂函数头文件:

    #include 

    🍂函数原型: 

    char * strncpy ( char * destination, const char * source, size_t num );
    • dest:目标字符串,即要将源字符串复制到的位置。
    • src:源字符串,即要复制的字符串。
    • num:要复制的字符数。 

    🎈 strncpy函数将源字符串src的前n个字符复制到dest中。如果源字符串的长度小于n,则复制完源字符串后,会用空字符'\0'填充剩余的空间。

    🎈如果源字符串的长度大于或等于n,那么目标字符串将不会以空字符结尾。

     

    🧅 因此,在使用strncpy函数复制字符串时,需要手动在目标字符串的最后一个字符后面添加空字符。

    2,strncpy函数示例 

    1. #include
    2. #include
    3. int main()
    4. {
    5. char dest[20];
    6. char src[] = "helllo world!";
    7. strncpy(dest, src, 8);
    8. dest[8] = '\0';
    9. printf("%s\n", dest);
    10. return 0;
    11. }

    🍂运行结果:

    🍂 代码解释:

    在上面的代码中,我们定义了一个目标字符串dest和源字符串src ,然后我们使用strncpy函数将src的前8个字符复制到dest中。由于目标字符串的长度大于等于源字符串的长度,我们需要在dest的后面添加空字符。最后,我们打印出复制后的字符串。

    3,注意事项

    1,目标字符串dest必须足够大,以容纳要复制的以及额外的空字符。否则,可能会导致缓冲区溢出的问题。

    2,如果源字符串的长度小于n,则目标字符串将以空字符结尾。如果源字符串的长度大于或等于n,则目标字符串将不会以空字符结尾,需要手动添加空字符。

    3, strncpy函数只复制源字符串的前n个字符,而不会复制整个字符串。

    二,strncat函数

    1,strncat函数简介

    strncat函数用于将一个字符串的一部分追加到另一个字符串的末尾。

      🍂函数头文件:

    #include 

    🍂函数原型: 

    char * strncat ( char * destination, const char * source, size_t num );

    dest:目标字符串,即要将源字符串追加到的位置。

    src:源字符串,即要追加的字符。

    num:要追加的字符数。 

    🎈注:

    strncat函数会将源字符串src的前n个字符追加到目标字符串dest的末尾,并在追加完后在dest的末尾添加一个空字符'\0'。

    2,strncat函数示例 

    1. #include
    2. #include
    3. int main()
    4. {
    5. char dest[20] = { "hello " };
    6. char src[] = { "world!" };
    7. strncat(dest, src, 5);
    8. printf("%s\n", dest);
    9. return 0;
    10. }

     🍂运行结果:

    3,注意事项

    1,目标字符串dest必须足够大,以容纳要追加的字符以及额外的空字符。否则,可能会导致缓冲区溢出的问题。

    2,如果源字符串的长度小于n,会将源字符串的全部字符追加到目标字符串中。如果源字符串的长度大于或等于n,则只会将源字符串的前n个字符追加到目标字符串中。

    3,strncat函数会在目标字符串的末尾添加一个空字符

    三,strncmp函数

    1,strncmp函数简介

    strncmp函数用于比较两个字符串的前n个字符是否相等。

      🍂函数头文件:

    #include 

     🍂函数原型:  

    int strncmp ( const char * str1, const char * str2, size_t num );

    str1:第一个字符串。

    str2:第二个字符串。

    num:要比较的字符数。  

    2,strncmp函数示例 

    1. #include
    2. #include
    3. int main()
    4. {
    5. char str1[] = { "abcde" };
    6. char str2[] = { "abxyz" };
    7. int ret = strncmp(str1, str2, 3);
    8. if (ret == 0)
    9. printf("str1和str2相等\n");
    10. else if (ret > 0)
    11. printf("str1大于str2\n");
    12. else
    13. printf("str1小于str2\n");
    14. return 0;
    15. }

      🍂运行结果:

     🍂 代码解释:

    在上面的代码示例中,我们定义了两个字符串str1和str2。然后,我们使用strncmp函数比较了这两个字符串的前3个字符,由于str1字符串中'c'字符的ASCII码值小于str2字符串中'x'字符的ASCII码值,所以返回一个小于0的整数,根据返回值的不同,我们打印出相应的信息。

    3,注意事项

    1,如果两个字符串的长度小于n,则会比较两个字符串的全部字符,如果两个字符串的长度大于或等于n,则只会比较两个字符串的前n个字符。

    2,返回值为0表示两个字符串的前n个字符完全相等

    返回值小于0表示第一个字符串的前n个字符小于第二个字符串的前n个字符。

    返回值大于0表示第一个字符串的前n个字符大于第二个字符串的前n个字符。

  • 相关阅读:
    NET 6 实现滑动验证码(三)、接口
    江苏2022农民丰收节 国稻种芯:主场活动在苏中地区泰兴开幕
    Spring Cloud 与dubbo微服务架构选型
    刷题记录(NC15665 maze,NC50243 小木棍)
    数据结构:九种内部排序(动图+完整代码)
    java spring cloud 企业工程管理系统源码+二次开发+定制化服务
    基于SSH框架的学生信息管理系统
    Win7系统如何在线进行重装?在线一键重装Win7方法
    几个Caller-特性的妙用
    TypeScript(4)接口
  • 原文地址:https://blog.csdn.net/weixin_65931202/article/details/133768088