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

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

1万+

被折叠的 条评论
为什么被折叠?



