char* mid(char* des, int size, char* src, int first, int count) { int len_src,real_ceil_length; int k; char *i,*j; if(src == 0 || des == 0) { return 0; } i = src; len_src = 0; while(*i != '\0') {i++; len_src++; } i = src; if(first > len_src || first <= 0) { return des; } if((count > len_src - first + 1)||(count == -1)) { real_ceil_length = len_src - first + 1; } else { real_ceil_length = count; } if(real_ceil_length + 1 > size) { return des; } i = src + first - 1; j = des; for(k = 1;k <= real_ceil_length;k++) {*j = *i; i++; j++; } *j = '\0'; return des; }
时间: 2024-02-14 14:35:10 浏览: 15
PHP取整函数:ceil,floor,round,intval的区别详细解析
这段代码是实现了一个字符串截取函数 mid(),它的作用是从字符串 src 中截取指定位置的一定长度的子串,存储到字符串 des 中。其中,参数 size 表示 des 的大小,参数 first 表示截取的起始位置,参数 count 表示截取的长度。如果 count 为 -1,则表示截取从 first 开始到字符串末尾的所有字符。
具体实现过程是,首先计算出字符串 src 的长度 len_src,然后根据参数 first 和 count 计算出实际需要截取的长度 real_ceil_length。如果 real_ceil_length + 1 大于参数 size,则说明 des 的空间不够存储截取后的子串,函数直接返回。否则,从 src 中按照指定的位置和长度截取子串,存储到 des 中,并在末尾添加 '\0',最后返回 des。
阅读全文