请编写程序,从一个字符串中提取一个子字符串,函数原型应该如下:
int substr(char dst[], char src[], int start, int len);
函数的任务是从src数组起始位置向后偏移start个字符的位置开始,最多复制len个非NUL字符到dst数组。
复制完毕后,dst数组必须以NUL字节结尾。
函数返回值是存储在dst数组中的字符串的长度。
如果start所指定的位置越过了src数组的尾部,或者start或len的值为负,那么复制到dst数组的是个空字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int substr(char dst[], char src[], int start, int len) {
if (start < 0 || len < 0 || start > strlen(src)) {
dst[0] = '\0';
printf("输入参数异常\n");
return 0;
}
char *dst_sp = dst;
char *sp = src + start;
int copied_len = len;
while(copied_len) {
if((*dst_sp++ = *sp++) != '\0') {