C語言函式題-取子串 (10分)
阿新 • • 發佈:2020-12-30
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;