/****************************************
* File Name : substr.c
* Creat Data : 2015.1.19
* Author : ZhouYuan
*****************************************/
/* 从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NUL字符到dst数组。
复制完毕后,dst数组必须以NUL字节结尾。函数的返回值是存储于dst数组中的字符串长度
如果start所指定的位置越过了src数组的尾部,或者start或len的值为负,那么复制到dst数组的是个空字符串*/
#include <stdio.h>
#include <string.h>
int substr( char dst[], char src[], int start, int len )
{
int n;
int count = 0;
char *ret = dst;
char *end = src;
while( *end != '\0')
{
end++;
count++;
}
if( start < 0 || len < 0 || start > count)
{
*dst = '\0';
}
else
{
if( start <= count )
{
for( n = start; n <= (start+len);n++ )
{
*dst++ = *src++;
}
}
*dst = '\0';
}
return strlen(ret);
}
int main()
{
char arr[10];
char brr[] = "1234567890";
printf("%d\n",substr( arr,brr,11,5 ));
printf("%d\n",substr( arr,brr,2,5 ));
return 0;
}
从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NUL字符到dst数组。
最新推荐文章于 2022-04-06 20:13:42 发布