6-3取子串 (10分)
编写代码,完成从指定字符串中取指定子串的代码(不利用string.h类库),给定的是子串起始位置和长度,返回一个新的子字符串的首地址。如果起始位置不妥,返回空串。如果后面的子串长度不足,则返回尽量长的子串。
操作接口说明:
char* subStr(char *st,int pos,int len);
st是原字符串初址;pos是取子串的初始位置(pos>=0);len是所取子串的最大长度(len>0)。要求创建并返回要求的子串首地址。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>
#include <stdlib.h>
char* subStr(char *st,int pos,int len){
//start
//这里是你填入的代码,已有的不用再!!!
//end
}
int main(){
char s[]="0123456789A123456789B123456789";
int pos,len;
scanf("%d%d",&pos,&len);
char *p=subStr(s,pos,len);//pos,len>=0
printf("[%s]\n",p);
return 0;
}
/* 请在这里填写//start与//end间应该填写的代码 */
输入样例:
两个整数分别表示起始位置与子串长度,用空格分隔:
3
13
输出样例:
[3456789A12345]
if(pos>=30) return "\0";
char *s = st+pos;
*(s+len) = '\0';
return s;