• C语言学习之我见-strncpy()字符串复制函数(可控制范围)


    strncpy()函数,用于两个字符串值的复制。
    (1)函数原型

     char *strncpy(char * _Dest,const char * _Source,size_t _Count);
    

    (2)头文件

    string.h
    

    (3)功能

    将从const char * _Source到''结尾的字符串(包括'')复制到char * _Dest
    所指的字符串处。
    size_t _Count确定对const char * _Source的最大截取范围
    返回值char * = char * _Dest
    
    

    (4)基础实例代码

        char a[30] = "12345678901234567890";
    	char b[]="zobol";
    	for(int i=0;i<30;++i)
    	{
    		printf("%c ",a[i]);//将字符数组中的所有值都输出
    	}
    	for(int i=0;i<6;++i)
    	{
    		printf("%c ",b[i]);
    	}
    
    	strcpy(a,b,5);//关键函数
    	for(int i=0;i<30;++i)
    	{
    		printf("%c ",a[i]);
    	}
    	printf("%s
    ",a);
    

    (5)输出情况
    在这里插入图片描述
    (6)问题1:char * _Dest所指向的必须是字符串的首地址吗?
    回答:不需要,可以从中间a+3输入,或者&a[i]

    strncpy(a+3,b,5);
    strncpy(&a[4],b,5);
    

    在这里插入图片描述
    (7)问题2:返回值char*是做什么用?
    回答:char*返回的是第一个参数,主要是用来方便printf()函数输出。

    	printf("%s
    ",strncpy(&a[3],b,5));
    

    在这里插入图片描述
    (8)问题3:size_t _Count是用来做什么的?
    回答:是用来确保复制,不会导致数据溢出。一般设定为char * _Dest所指向字符串的(最大值-1)。记得确保给''的位置也要准备好。

    如果对你有帮助,欢迎加我的个人公众号:zobol的魔法藏书室

  • 相关阅读:
    MVC中单选按钮的实现
    前端点击手机号码跳转到手机拨号页面
    jQuery限制文本框只能输入正整数
    Asp.Net 之 二维码生成
    MVC +Jqyery+Ajax 实现弹出层提醒
    jQuery Ajax使用实例
    ASP的调试技术解答
    模式应用场景
    redis笔记
    yii resful
  • 原文地址:https://www.cnblogs.com/zobol/p/14358027.html
Copyright © 2020-2023  润新知