C实现从指定位置开始截取字符串指定长度

本文介绍如何利用strncpy函数从源字符串中指定起始位置截取固定长度的子字符串,并通过实例演示了如何正确使用此方法避免数组越界等问题。

C标准库中没有从某位置开始指定长度子字符串的函数,但可用函数 strncpy 实现。

1. strncpy介绍

        strncpy原型:char *strncpy(char *dest, const char *src, size_t n) 
        功能:C库函数strncpy 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
        当 src 的长度小于 n 时,dest 的剩余部分将用空字节(NUL字节 / \0)填充(NUL即‘\0’)。
        当 strlen(src)的值>=n时,那么只有len个字符被复制到dst中,注意!它的结果将不会以NUL字节结尾(容易造成数组越界)。

int GetFixedIntervalTime()
	{
		unsigned int day = 0;
		unsigned int hour = 0;
		unsigned int min  = 0;
		char time_buff[16]="";
		char stmp[8];
		fv_dev_manager_cfg_get(FIXED_REBOOT_UPTIME_DAY,time_buff); 
		day = atoi(time_buff);
		memset(time_buff, 0, sizeof(time_buff));
		fv_dev_manager_cfg_get(FIXED_REBOOT_TIME,time_buff);/* 0907;1010 */
		memset(stmp, 0, sizeof(stmp));
		strncpy(stmp, time_buff, 2);	//从time_buff开始位置截取2个字符长度,到st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值