C语言函数题-取子串 (10分)

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;

不要想复杂了

猜你喜欢

转载自blog.csdn.net/weixin_51198300/article/details/111891869