一、提取字符串函数int substr(char dst[], char src[], int start, int len);

分析:

源字符串src[]用来提供字符串;

目的字符串dst[]用来接收子字符串;

从src[]的起始位置向后偏移,从start的位置开始最多复制len个字符,当src[]中字符数可以从start个字符开始复制len个字符,那么可以复制len个字符;当从start开始到字符串结束,即遇到‘\0’时,小于len个字符,那么只需复制从start开始到字符串结束的字符串。

代码如下:

#include<stdio.h>
#include<string.h>
int substr(char dst[], char src[], int start, int len)
{
int i = 0;
int j = 0;
i = start;
while (src[i]!='\0')
{ assert(len!=0)
dst[j] = src[i];
i++;
j++;
if (i == (start + len))
{
dst[j] = '\0';
return (strlen(dst));
}

}
dst[j] = '\0';
return (strlen(dst));
}
int main()
{
int start = 0;
int len = 0;
int length = 0;
char str1[] = "abcdefgh";
char str2[10] = { 0 };
printf("请输入偏移量start and len:");
scanf("%d%d", &start, &len);
length = substr(str2, str1, start, len);
printf("length=%d\nstr2=%s\n", length, str2);
system("pause");
return 0;
}